javascript - JavaScript - NightWatch.js - Cucumber:如何处理步骤定义中的返回值
问题描述
我正在使用 NightwatchJS 和 Cucumber 进行一个项目,并且在使用自定义命令的步骤定义返回的值时遇到问题。
我的脚步
When('user click on save button', async () => {
let referenceResponse = "referenceResponse"
referenceResponse = await client.clickOnSaveDraftButtonTask();
console.log("referenceResponse "+referenceResponse);
});
自定义命令
//clickOnSaveDraftButtonTask.js
module.exports.command = async function () {
const orderDetailsPage = this.page.orderDetailsPageObject();
let responseData = orderDetailsPage
.clickOnSaveButton();
console.log("responseDatas " + responseData);
responseData.then((result) => {
console.log("result " + result);
});
return responseDatas;
};
记录了什么
When user click on save button
responseDatas [object Promise]
√ Passed [equal]: POST == POST
√ Passed [equal]: 201 == 201
√ Passed [strictEqual]: true === true
referenceResponse undefined
result {"reference": "ESXXXXXX"}
问题是我需要恢复步骤定义的值,以便能够在另一个步骤中验证结果。
解决方案
您应该存储要在世界级的其他步骤中使用的数据。您可以在此处阅读有关世界级的更多信息https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md
推荐阅读
- arrays - 是否可以创建 VlcPlayerController 控制器的二维数组?
- python - 如何删除字典python中值中具有不同顺序的同一对?
- python - 如何从线程类中获取变量?
- java - 如何在android中使TextInputEditText默认不聚焦?
- php - 致命错误:在 phar:/
- c - 为什么在下面的代码中将 Go 字节传递给 C,字节长度与 cgo 中的字节长度不匹配?
- reactjs - 如何为下一个/图像静态导入图像?
- python - 如何在代码中构建循环,直到输入预期的输入?
- simulation - 如何将托勒密模型导出为 FMU?
- php - 多控制器中的一个 __construct (Codeigniter 3)