TestBed FakeAsync-异步回调未在jasmine指定的超时内调用。DEFAULT_TIMEOUT_INTERVAL

时间:2018-09-10 07:36:39

标签: angular jasmine karma-jasmine testbed

我正在使用Jasmin,Karma和Angular TestBed进行Angular中的单元测试。我遇到错误

style="pointer-events:none;"

我正在使用fakeAsync和tick方法。搜索后,我为测试添加了超时参数,甚至还为滴答指定了2000毫秒。

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

使用上面的代码没有运气。根据{{​​3}},我尝试过,但是它对我不起作用。我没有选择第一个解决方案,因为我正在使用fakeAsync而未完成

it('Should setup the initial data', fakeAsync(() => {

      fixture.detectChanges();
      tick(2000);

      expect(getUsersSpy).toHaveBeenCalledTimes(1);     

    }), 10000);


 it('Should ensure form is dirty when user changed', fakeAsync(() => {
      fixture.detectChanges();
      tick(2000);

      fixture.whenStable().then(() => {
        userComponentInstance.ngOnInit();        
        userComponentInstance.onUserChanged();
        fixture.detectChanges();        
        expect(userComponentInstance.userForm.form.dirty).toBeTruthy();
      });

 }), 10000);

我在其子组件之一中包含以下行。循环创建的子组件

var originalTimeout;

beforeEach(function() {
    originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
    jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

afterEach(function() {
  jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});

0 个答案:

没有答案