【发布时间】:2017-04-28 10:12:31
【问题描述】:
我有一个适用于 Angular 应用程序的 Karma 设置。目前我正在测试 2 个不同的服务 PerformanceService 和 DataService,所以我有 2 个文件,performance.service.spec.ts 和 data.service.spec.ts
这两个文件都在初始化 TestBed 并配置一个 MockHttp 以在测试服务时使用。
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
function createResponse(body) {
return Observable.of(
new Response(new ResponseOptions({ body: JSON.stringify(body) }))
);
}
class MockHttp {
get() {
return createResponse([]);
}
}
据我所知,这可以做一次,不需要为每个服务都做,所以我创建了一个 src/main.spec.ts 并将该代码移到那里,并将其从服务中删除。
现在我运行测试,但它不起作用,我收到错误 TypeError: Cannot read property 'injector' of null
知道为什么会这样吗? main.spec.ts 是首先执行的,所以如果我没记错的话,一旦我们开始测试服务,就应该初始化 TestBed。
谢谢
【问题讨论】:
标签: angular karma-runner