2017-03-12 107 views
1

由于一系列原因,我希望能够使用Jasua/Karma对Angualar的支持来测试一些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 } ], 

如果这样做没有办法,请在测试规范中分享您的导入和任何较早的代码。