В настоящее время я учился писать тесты с использованием транспортира, и я застрял и не мог понять, как правильно написать простой тест входа/выхода из системы.Передатчик/угловой 2 управляющий поток
describe('Login with dummy user', function() {
browser.ignoreSynchronization = true;
browser.get('https://localhost:44311');
element(by.id('userNameInput')).sendKeys('blabla');
element(by.id('passwordInput')).sendKeys('blablapassword');
element(by.id('submitButton')).click();
browser.ignoreSynchronization = false;
browser.sleep(2000);
it('page should have Inventory title', function() {
expect(browser.getTitle()).toEqual('Inventory');
});
it(' page should have logout button', function() {
var completedAmount = element.all(by.css('.logoutButton'));
expect(completedAmount.count()).toEqual(1);
});
describe('clicking loging out button', function() {
browser.sleep(2000);
element(by.css('[href="/account/signout"]')).click();
it('should redirect to account page', function() {
expect(browser.getCurrentUrl()).toEqual('https://localhost:44311/account');
});
it('should display a signed out message', function() {
expect(element(by.css('text-success')).getText()).toEqual('You have successfully signed out');
});
});
});
Я ожидаю, что первые два она будет работать до второго описания, но браузер нажимает на кнопку выхода из системы, браузер закрывается и только после этого делать тесты запуска и потерпеть неудачу.
Храните код отношение к ' он внутри вашего 'it'. Вы не можете хранить что-либо за пределами 'it' блоков, поэтому перемещайте элемент (by.id ('userNameInput')). SendKeys ('blabla');' и другие для вашего 'it' – FCin
Но тогда как я могу проверить 2 вещи? Или я вынужден иметь несколько ожиданий в 1, вместо того, чтобы иметь его несколько? –
Вы можете выполнять функции и сохранять повторяющийся код внутри функции, но каждый 'it' должен проверять, что он имеет в своем описании. Если вам нужно сделать пару ожиданий, вы можете. – FCin