我了解茉莉/量角器可以使用then
等待某些操作的结果。我也理解Control流程是如何工作的。
我的问题是,如果我必须使用then
,那么所有后续操作都需要在then
中进行链接吗?或者量角器会照顾同步性吗?
我正在使用页面模型:
SomePage.prototype = Object.create({}, {
list: { get: () => {return element.all(by.repeater("item in $ctrl.list"))}}
});
somePage.list.then((listItems) => {
expect(list.length).toBe(1);
element(by.css(".item-name")).getText().then((itemName) => {
expect(itemName).toBe("test item");
});
})
进一步测试,我这样做:
somePage.list.then((listItems) => {
...
})
.then(() => {
... more testing
});
或者我只是继续,就像同步一样?
跟进问题:
当使用Page模型时,如果页面函数触发了触发应用程序中http调用的click事件,那么他们应该return element(by.css('some-button-that-triggers-a-http')).click()
还是只执行点击?
答案 0 :(得分:0)
是否取决于您是否需要在then
中调用其他异步操作。如果是这样,则可以链接then。如果没有,您将在“ then”语句中继续执行同步代码。
您有错字-请确保您拨打电话清单,如:
somePage.list().then((listItems) => {
...
})
最后,请确保您在done()
语句中调用then
,以便茉莉花知道测试已完成运行。 (或仅使用es6 + async / await
)