如何解决如何在cucumber.js的Before中将内容设置到World对象中?
如何在cucumber.js 中的场景(例如在Before()
中)之前将内容放入World 对象中?
我想在场景的第一步之前注入一个测试上下文对象并注入一些初始值。
但是在第一步中,这不是指 World 对象。
如何访问 Before()
中的 World 对象?
const { Given,Before } = require('cucumber');
Before((scenario) => {
const world = this;
world.put = 'hello';
world.myContext = {
fileName: null,fileContent: null,};
});
Given( /^step 1$/,{ 90000 },async function() {
const world = this;
console.log('step 1: world: ',world);
console.log('step 1: world.myContext: ',world.myContext);
});
解决方法
根据本文档,world 只能在 world 和 hooks file- https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md 中作为“this”访问。此外,'this' 将是一个需要键值的 json 对象。
创建一个名为 world.ts 的单独类并添加如下示例代码:
import { setWorldConstructor } from 'cucumber';
const _defaultOptions = {
env: 'stage',};
function World(input) {
this.World = input;
}
Object.assign(this,_defaultOptions);
}
setWorldConstructor(World);
使用这个,如果我们在 hooks 文件中调用 this.env,你会得到一个映射到上面的值..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。