我们有一个使用SystemJS的旧Angular 4项目。我们被要求使用Jasmine和Karma实施单元测试用例。我开始为一个组件编写一个测试套件。看起来像这样(下面的伪代码):
beforeEach(async(() => {
TestBed.configureTestingModule(
imports,
providers,
declarations etc.
).compileComponents();
}));
现在,如果我仅向该套件中添加一个简单的虚拟测试用例,它将失败并显示以下错误:
异步回调未在指定的超时时间内调用 jasmine.default_timeout_interval
如果删除对compileComponents的调用,它将开始工作。 另一方面,如果我使用一个非常基本的组件,而没有提供程序和子组件,则该安装程序将起作用。因此,我猜想各种进口/供应商正在以某种方式使其中断。
以前有人遇到过这样的问题吗?
我需要compileComponents的原因是我们使用的是templateUrl,而不是组件中的内联HTML。
谢谢
答案 0 :(得分:0)
为什么需要“异步”来配置测试模块?
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
declarations: [],
providers: []
});
const fixture = TestBed.createComponent({{componentName}});
fixture.detectChanges();
});