【发布时间】:2021-03-24 17:06:52
【问题描述】:
我正在编写我的第一个 Protractor 测试场景,我正在探索神秘的 promise 世界。但我真的无法理解一件事。这是我的测试的样子:
let stuff = "Some data I pick up from a CSV file"
describe("Foo", function () {
browser.waitForAngularEnabled(false) // maybe not a relevant piece of information to share but how knows
for (let i of testdata) {
it("Bar", function () {
browser.driver.manage().window().maximize();
browser.get(browser.baseUrl)
doStuff1()
let usefulCalculatedData = doStuff2(stuff)
doStuff3()
storeThisStuffInACSVFile(usefulCalculatedData);
})
}
})
function doStuff2(stuff){
var today = new Date()
let usefulCalculatedData = today.getFullYear().toString()
+ today.getMonth() + 1
+ today.getDate()
+ today.getHours()
+ stuff
doActualStuff(usefulCalculatedData)
return usefulCalculatedData
}
我希望在it 的末尾运行步骤“storeThisStuffInACSVFile”。但实际上,它是在测试开始时运行的!这意味着doStuff2() 的某些部分被调用...顺便说一句,所有测试都执行得很好。我真的很困惑,因为我不知道如何强制执行我想要的顺序。
提前感谢您的帮助。
【问题讨论】:
-
看看如何处理promise,这是你的问题
-
如果我正确理解你的问题,没有人可以帮助你只给出你发布的代码。那么根本问题在
doActualStuffdoStuff1和doStuff3
标签: javascript typescript asynchronous protractor automated-tests