fixture.whenStable () перестает работать / вызывается после обновления с Angular 4 до 6 - PullRequest
0 голосов
/ 11 декабря 2018

Итак, у меня было несколько тестов, которые проверяли некоторые атрибуты компонентов (например, кнопку).

Ранее у меня были тестовые случаи, которые раньше работали примерно так:

            fixture.whenStable().then(()=>{
                const nextBtn = fixture.debugElement.nativeElement.querySelector(
                    '#create-btn'
                );
                console.log(nextBtn)
                expect(nextBtn.getAttribute('ng-reflect-disabled')).toBe('true');;
            })

внезапно, код не входит внутрь fixture.whenStable().then(() => {}), тестовые примеры проходят с предупреждением, таким как

У некоторых компонентов должна быть отключена кнопка, ожиданий нет

Я не могу найти что-либо через Интернет.Кто-нибудь сталкивался с подобной проблемой.

Я также пытался обернуть ее вокруг async() из it, но не повезло

Ответы [ 2 ]

0 голосов
/ 29 августа 2019

Попробуйте добавить асинхронный в beforeEach:

beforeEach(async(() => { // <-- use async
    TestBed.configureTestingModule({
        declarations: [AppComponent],
    });

    fixture = TestBed.createComponent(AppComponent);

    component = fixture.componentInstance;

    fixture.detectChanges();
}));
0 голосов
/ 12 декабря 2018

Вы можете попробовать следующие вещи.

it('TEST', async(() => {
    fixture.whenStable().then(() => {
        fixture.detectChanges(); // you can write this
        const nextBtn = fixture.debugElement.nativeElement.querySelector('#create-btn');
        expect(nextBtn.getAttribute('ng-reflect-disabled')).toBe('true');
    });
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...