量角器同步与异步
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了量角器同步与异步相关的知识,希望对你有一定的参考价值。
我了解茉莉/量角器你可以使用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
});
或者我只是继续,如同步?
跟进问题:当使用页面模型时,对于触发在应用程序中触发http调用的单击事件的页面函数,他们应该return element(by.css('some-button-that-triggers-a-http')).click()
还是只执行点击?
答案
如果取决于您是否需要在then
中调用其他异步操作。如果是这样,你可以链接当时的。如果没有,您将继续使用'then'语句中的同步代码。
你有一个拼写错误 - 确保你打电话给列表,如:
somePage.list().then((listItems) => {
...
})
最后,确保在done()
语句中调用then
,以便jasmine知道测试已经完成运行。 (或者只使用es6 + async / await
)
以上是关于量角器同步与异步的主要内容,如果未能解决你的问题,请参考以下文章