Testbed fakeasync - обратный вызов async не был вызван в течение тайм-аута, указанного jasmine.default_timeout_interval

Я использую Jasmin, Karma и Angular TestBed для модульных тестов в Angular. Я получаю сообщение об ошибке

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

Я использую методы fakeAsync и tick. После поиска я добавил параметр тайм-аута для своих тестов и даже дал 2000 миллисекунд для тика.

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);

Нет удачи с приведенным выше кодом. В соответствии с jasmine: асинхронный обратный вызов не был вызван в течение тайм-аута, указанного jasmine.DEFAULT_TIMEOUT_INTERVAL я пробовал, но у меня это не работает. Я не выбрал первое решение, так как работаю с fakeAsync и не закончил

var originalTimeout;

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

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

У меня есть строка ниже в одном из его дочерних компонентов. Дочерний компонент, созданный в цикле

ngAfterViewInit() {
    setTimeout(() => {
        jQuery("#" + this.name).selectpicker();
    },0);        
}

Пожалуйста, опубликуйте минимальный воспроизводимый пример, воспроизводящий вашу проблему, и / или код вашего компонента.

user4676340 10.09.2018 09:39

@trichetriche, Тестируемый компонент огромен и в него интегрировано больше сервисов и вложенных компонентов. Я пишу интеграционные тесты. Я разместил здесь, чтобы узнать, делаю ли я что-то не так, используя fakeAsync, тик и тайм-аут

Developer 10.09.2018 09:43

Как мы могли знать, что вы сделали что-то не так, если мы даже не знаем, что вы делаете? Опубликуйте соответствующий код или, как описано в ссылке, пример минимальный, воспроизводящий проблему (то есть только код, относящийся к тестам).

user4676340 10.09.2018 09:43

@trichetriche, я пытаюсь удалить дочерние компоненты и посмотреть, где это вызывает проблему, и скоро обновлю код

Developer 10.09.2018 09:46
0
4
331
0

Другие вопросы по теме