Cucumber JS:如何在 Given/When/Then 步骤之外 export/update 全局变量?

Cucumber JS: How to export/update global variable outside Given/When/Then step?

我尝试 update/export 全局变量 (firstString) 在 'Then' 步骤中使用和验证它。 如何正确导出?当我这样做时, firstString 是未定义的。 只有当我 export/import 它在步骤中时它才有效。如何全局更新它并在 'Then' 文件中使用它?

helpers.js:

let firstString;

given.js:

let { firstString } = require('./helpers')

Given('I have first {string}', function (stringValue) {
    return stringRequest(stringValue).then(response => {
        firstString = response
    });
});

module.exports = { firstString }

then.js:

firstString = require('./helpers').firstString
Then('blablabla {string}', function (stringType) {
    console.log(firstString)
});

如果我对你想做什么的理解是正确的,你就是想跨步骤存储数据。为此,您需要使用 cucumber 为您提供的世界实例。您可以通过 this 关键字逐步访问世界实例。

所以你要做的是

Given('I have first {string}', function (stringValue) {
return stringRequest(stringValue).then(response => {
    this.firstString = response
});

});

Then('blablabla {string}', function (stringType) {
    console.log(this.firstString)
});

有关世界实例的更多信息,请查看https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md