Angular 4 Jasmine问题与compileComponents

时间:2018-12-15 05:08:22

标签: jasmine karma-jasmine

我们有一个使用SystemJS的旧Angular 4项目。我们被要求使用Jasmine和Karma实施单元测试用例。我开始为一个组件编写一个测试套件。看起来像这样(下面的伪代码):

beforeEach(async(() => {
         TestBed.configureTestingModule(
                    imports,
                    providers,
                    declarations etc.
                ).compileComponents();
    }));

现在,如果我仅向该套件中添加一个简单的虚拟测试用例,它将失败并显示以下错误:

  

异步回调未在指定的超时时间内调用   jasmine.default_timeout_interval

如果删除对compileComponents的调用,它将开始工作。 另一方面,如果我使用一个非常基本的组件,而没有提供程序和子组件,则该安装程序将起作用。因此,我猜想各种进口/供应商正在以某种方式使其中断。

以前有人遇到过这样的问题吗?

我需要compileComponents的原因是我们使用的是templateUrl,而不是组件中的内联HTML。

谢谢

1 个答案:

答案 0 :(得分:0)

为什么需要“异步”来配置测试模块?

beforeEach(() => {
 TestBed.configureTestingModule({
     imports: [],
     declarations: [],
     providers: []
 });
 const fixture = TestBed.createComponent({{componentName}});
 fixture.detectChanges();
});