【发布时间】:2016-08-12 19:41:11
【问题描述】:
如何在量角器测试中使用 async 和 await?
it('test async', function(){
var value = 0;
function asyncAction() {
return browser.driver.wait(()=>true)
.then(function () {
console.log('a');
return value++;
});
}
//-Problem Area-
async function doAwait(){
await asyncAction();
return asyncAction();
}
doAwait();
protractor.promise.controlFlow().execute( () => {
console.log('b');
expect(value).toBe(2);
});
});
这里的输出是
- 一个
- b
- 一个
在期望的时候值是 1 函数doAwait(){ 等待异步操作(); 返回异步操作(); }
我喜欢认为这类似于
function doAwait(){
asyncAction().then(()=>asyncAction());
}
这有效,但上述异步 doAwait 无效。我相信这是因为生成器破坏了 selenium 的 ControlFlow。
【问题讨论】:
-
你已经得到了这个“我相信这是因为生成器破坏了硒的控制流。”
-
我很想知道你是如何测试这个的。我的 IDE 只支持 ECMA 6
-
require('babel-register')({ plugins: ['transform-async-to-generator'] });
标签: javascript selenium promise async-await protractor