量角器 - 处理“then”承诺使它们更具可读性
Posted
技术标签:
【中文标题】量角器 - 处理“then”承诺使它们更具可读性【英文标题】:Protractor - handling of "then" promise to make them more readable 【发布时间】:2020-01-11 02:31:45 【问题描述】:我正在尝试将一系列承诺变成更易读的形式。 需要帮助和想法如何优化我的测试以使其对任何测试人员都更具可读性? 这是来自我的测试规范:
it('Should perform login', function ()
help.click(page_element.username).then(function()
help.setValue(page_element.username,browser.params.login.user).then(function() help.setValue(pageLocators.password,browser.params.login.password).then(function()
help.click(pageLocators.buttonLoginSubmit);
);
);
);
);
-> help 是另一个包含方法的js文件:click,setValue with return。
我还有其他类似的测试规范,它们使用了很多“then”,使代码看起来很丑。
除了去除它们之外,还有什么方法可以减少它们? 是否有可能通过 try-catch 或 promise.all 来处理这些承诺? 请告诉我该怎么做,因为我无法做到。
【问题讨论】:
用打字稿写出来,这样你就可以使用await
。
您还应该强烈考虑使用一致的缩进来使代码更具可读性。
@Dai 即使在 js 中我也可以使用 await。但这并不能解决问题。在测试失败时,报告也没有给我相关的失败。我正在使用茉莉花规格记者。
async/await
语法的引入几乎纯粹是为了提高 Promise 的可读性,这是您想要的结果,所以我认为下面的答案是您的问题唯一接受的答案
【参考方案1】:
您可以使用 async 和 await。
it('Should perform login', async function ()
await help.click(page_element.username);
await help.setValue(page_element.username,browser.params.login.user);
await help.setValue(pageLocators.password,browser.params.login.password);
await help.click(pageLocators.buttonLoginSubmit);
);
【讨论】:
以上是关于量角器 - 处理“then”承诺使它们更具可读性的主要内容,如果未能解决你的问题,请参考以下文章