Using the Page Object Model is it better practice to return a promise or to use async/await in the function when the function does not return a value

烈酒焚心 提交于 2019-12-10 15:51:11

问题


Hoping to get some feedback on what is the best practice in this situation (Protractor testing framework using page object model with async/await instead of SELENIUM_PROMISE_MANAGER).

Let say I have a function called setUsername which simply sets the username in a field. I'm wondering is it better practice to use async/await to await the action in the function itself or to return the action. Either way whenever the function is called it will need to be awaited.

option1

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

option2

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

Syntax for calling either option

await loginPO.setUsername('admin');

Reasoning: If I go with option1 then I am declaring await twice (in func and when called), which seems unnecessary, but the function behaves more inline with what I expect. If I go with option 2 then await is only used once but it seems wrong to return anything from a function where I only need to set a value and not get anything back.


回答1:


In my opinion it is better to use option 1, where you will explicit show that your function is async because has some actions that need to be awaited.

So, everyone will understand that for using it function will be needed to resolve a promise. Also, if your method will have two or more actions that are needed to be awaited, so, you will have to make your function async.



来源:https://stackoverflow.com/questions/54693279/using-the-page-object-model-is-it-better-practice-to-return-a-promise-or-to-use

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!