Используя объектную модель страницы, лучше возвращать обещание или использовать async / await в функции, когда функция не возвращает значение - PullRequest
0 голосов
/ 14 февраля 2019

Надеюсь получить отзывы о том, что является лучшим опытом в этой ситуации (Среда тестирования транспортира, использующая объектную модель страницы с async / await вместо SELENIUM_PROMISE_MANAGER) .

Допустим, у меня естьфункция с именем setUsername, которая просто устанавливает имя пользователя в поле.Мне интересно, лучше ли использовать async / await для ожидания действия в самой функции или для возврата действия.В любом случае, всякий раз, когда вызывается функция, ее нужно ожидать.

option1

this.setUsername = async function (username) {
    await usernameInput.sendKeys(username);
}

option2

this.setUsername = function (username) {
    return usernameInput.sendKeys(username);
}

Синтаксис для вызова любой из опций

await loginPO.setUsername('admin');

Обоснование: Если я перейду с опцией 1, то я объявляю await дважды (в функции и при вызове), чтокажется ненужным, но функция ведет себя в большей степени, чем я ожидаю.Если я выбрал вариант 2, тогда await используется только один раз, но кажется неправильным возвращать что-либо из функции, где мне нужно только установить значение и ничего не вернуть.

1 Ответ

0 голосов
/ 14 февраля 2019

По моему мнению, лучше использовать вариант 1 , где вы явно покажете, что ваша функция async, потому что имеет некоторые действия, которые нужно ожидать.

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

...