e2e тест не пройден при ожидании правильности формы - PullRequest
0 голосов
/ 28 мая 2018

Я запускаю тест e2e , и он не проходит ни на одном из моих компонентов, в частности на ожидают .Моя форма должна быть действительной после заполнения так.

Это тест:

  it("1: Should create a new sitter", async () => {
        browser.get('/register-sitter');
        // Do something
        element(by.id('firstname')).sendKeys('Susan');
        element(by.id('lastname')).sendKeys('Winston');
        element(by.id('birthdate')).sendKeys('4/18/2018');
        element(by.id('gender')).all(by.tagName('mat-radio-button')).get(0).click();
        element.all(by.css('mat-select')).each(function (eachElement) {
            eachElement.click();                    //select the select
            browser.driver.sleep(500);              //wait for the renderings to take effect
            element(by.css('mat-option')).click();  //select the first mat-option
            browser.driver.sleep(500);              //wait for the renderings to take effect
        });
        element(by.id('username')).sendKeys('s.w@com');
        element(by.id('password')).sendKeys('susu123W');
        element(by.id('register')).click();
        element(by.css('form')).submit();
        // Expect something

   expect(element(by.css('form')).getAttribute('class')).toContain('ng-valid');
   });

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

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

Вместо использования browser.driver.sleep, вы можете воспользоватьсявозвращенные обещания функций транспортира и синхронизировать то, что должно быть синхронизировано.

Например, этот код:

element(by.id('firstname')).sendKeys('Susan');
element(by.id('lastname')).sendKeys('Winston');

будет заменен на:

element(by.id('firstname')).sendKeys('Susan')
.then(() => element(by.id('lastname')).sendKeys('Winston'));

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

0 голосов
/ 28 мая 2018

Попробуйте с

fixture.detectChanges(); 

до ожидаемого вызова.

...