2017-03-12 1 views
1

여러 가지 이유로 Angualar의 Jasmine/Karma 지원을 사용하여 일부 Http 서비스 (모의가 아닌)를 테스트하고 싶습니다. 나는 다음과 같은 코드를 사용하는 경우Jasmine/Karma를 통한 Angular Http 서비스 테스트

beforeEach(() => { 
    TestBed.configureTestingModule({ 
     providers: [], 
     imports: [ 
     HttpModule 
     ] 
    }); 
    ....... 

테스트 카르마 브라우저에 인쇄 된 다음과 같은 메시지와 함께 실패를 해결하는 방법에 대한 제안은 매우 극명하게 될 것이다

Error: No provider for Http! 
Error: DI Error 
    at NoProviderError.ZoneAwareError (http://localhost:9876/base/src/polyfills.ts?1adeefc4ae1dd1c3f12dac836469652bbacab66c:2054:33) 
    at NoProviderError.BaseError [as constructor] (http://localhost:9876/base/src/test.ts?5cfdb8c92873c902e956a345863bab75c6324f3e:23292:16) 
    at NoProviderError.AbstractProviderError [as constructor] (http://localhost:9876/base/src/test.ts?5cfdb8c92873c902e956a345863bab75c6324f3e:47503:16) 
    at new NoProviderError (http://localhost:9876/base/src/test.ts?5cfdb8c92873c902e956a345863bab75c6324f3e:47565:16) 
    at ReflectiveInjector_._throwOrNull (http://localhost:9876/base/src/test.ts?5cfdb8c92873c902e956a345863bab75c6324f3e:63961:19) 
....... 

답변

1

Http에 대해 공급자를 구성해야 할 수도 있습니다. 예 :

TestBed.configureTestingModule({ 
    providers: [ { provide: Http, useClass: Http } ], 

그럴 수 없다면 테스트 사양에서 가져 오기와 이전 코드를 공유하십시오.