У меня много нестабильности с Транспортером, и я уверен, что есть кое-что, что я не понимаю. Иногда мне нужно использовать .then(), когда вы нажимаете на кнопку, прежде чем продолжить, иногда это не имеет никакого влияния, и я не должен использовать .then() или тест не удалось.
Интересно, когда следует использовать обратный вызов .then() при тестировании в Protractor? Пример:
createAccountForm = $('#form-create-account');
submitButton = createAccountForm.$('button[type=submit]');
browser.wait(EC.elementToBeClickable(submitButton), 5000);
submitButton.click(); // .then(function(){ <-- uncomment in the .then form
// find the confirmation message
var message = $('.alert-success');
browser.wait(EC.visibilityOf(message), 5000);
log.debug('After visibilityOf');
expect(message.isPresent()).to.be.eventually.true;
// }); --> uncomment when in .then form
Когда я использую эту форму теста (без .then()), я вижу в браузере, что кнопка на кнопке не выполнена, тест продолжается со следующим ожиданием, а затем останавливается.
Если я использую форму .then(), щелчок по кнопке выполняется, и тест продолжается без ошибок.
В другом тесте мне не нужно использовать обратный вызов then() при нажатии кнопки.
Итак, когда следует использовать .then(), а когда нет?
Жан-Марк