Protractor 量角器:为什么黄瓜步骤在实际执行之前显示为已执行
我不熟悉量角器黄瓜。我正在尝试执行以下步骤定义,该定义来自于dragrator conf.jsProtractor 量角器:为什么黄瓜步骤在实际执行之前显示为已执行,protractor,cucumberjs,Protractor,Cucumberjs,我不熟悉量角器黄瓜。我正在尝试执行以下步骤定义,该定义来自于dragrator conf.js this.Given(/^I go to sparqHomePage$/, function (callback) { homepage.goToHomePage() homepage.login(data[0].UserName,data[0].Password).then(callback); }); this.Then(/^I create a process$/, functio
this.Given(/^I go to sparqHomePage$/, function (callback) {
homepage.goToHomePage()
homepage.login(data[0].UserName,data[0].Password).then(callback);
});
this.Then(/^I create a process$/, function () {
homepage.clickDesign();
homepage.clickFlowDesigner();
console.log(params.flow.procName + ' '+ params.flow.procDesc);
designPage.createNewProc(params.flow.procName, params.flow.procDesc);
});
this.Then(/^I should see process is saved in db$/, function (callback) {
var sql = "select * from process where name = ?";
sql = mysql.format(sql, params.flow.procName);
console.log(sql);
dbConn.query(sql, function(err, rows, fields){
if(!err) {
procDbObj = rows;
console.log(rows);
expect(procDbObj[0].name).to.eventually.equal( params.flow.procName);
expect(procDbObj[0].description).to.eventually.equal(params.flow.procDesc).and.notify(callback);
}
});
});
当我开始执行时,控制台日志显示,功能文件执行已经完成,但实际执行尚未完成
在我的第三步中,我将根据步骤1和步骤2的操作进行一些db验证。当cucumber试图在使用browser完成实际执行之前执行所有步骤时,我的第三个测试总是失败
如何使Cumber在进入下一步之前等待步骤执行完成
homepage.goToHomePage()
homepage.login(data[0].UserName,data[0].Password).then(callback);
我不确定第一行到底发生了什么,但我假设这将是一个点击,你需要让它返回一个承诺,然后像这样重写它
homepage.goToHomePage().then(()=>{
homepage.login(data[0].UserName,data[0].Password).then(callback);
})
然后在代码的其余部分遵循此模式,因为我可以在整个调用过程中看到相同的问题
homepage.goToHomePage()
和homepage.login(数据[0]。用户名,数据[0]。密码)。然后(回调)代码>。这两种方法是否都是正确的承诺,并且都得到了正确的处理?它现在看起来像是在调用这两个方法,但在解析承诺之前给出了一个直接的回调
正如罗斯所说,你也可以把承诺连成链,但首先要确保承诺得到了正确的处理
编辑:
正如罗斯所说,你也可以把承诺连成链,但首先要确保承诺得到了正确的处理
您也可以返回承诺而不是回调,只需按如下方式使用它
this.Given(/^I go to sparqHomePage$/, function () {
homepage.goToHomePage();
return homepage.login(data[0].UserName,data[0].Password);
});
副本