6 javascript asynchronous node.js angularjs protractor
我的量角器conf.js,onPrepare函数需要发出一个貌似的http请求,
onPrepare: function(done) {
request.get('http://pepper/sysid')
.end(function(err, resp){
if(err || !resp.ok){
log("there is an error " + err.message)
done()
}else{
global.sysid = resp.sysid
done()
}
})
Run Code Online (Sandbox Code Playgroud)
它会抛出错误,done is not a function
有没有其他方法,我可以强制回调内部onPrepare在我的测试开始执行之前被调用?
onPrepare()可以选择返回量角器在开始执行测试之前解析的承诺:
onPrepare可以选择返回一个promise,Protractor会在继续执行之前等待.如果准备涉及任何异步调用,例如与浏览器交互,则可以使用此方法.否则,量角器无法保证执行顺序,可能会在准备完成之前开始测试.
制作量角器promise并从onPrepare()以下位置返回:
onPrepare: function() {
var defer = protractor.promise.defer();
request.get('http://pepper/sysid').end(function(err, resp) {
if (err || !resp.ok) {
log("there is an error " + err.message);
defer.reject(resp);
} else {
global.sysid = resp.sysid;
defer.fulfill(resp);
}
});
return defer.promise;
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2757 次 |
| 最近记录: |