问题描述
好的,所以我有一个使用 Cucumberjs 的自动化仓库。我的 world.js 文件变得相当大,我正在尝试将其拆分以便更易于组织。我试过分成文件并通过原型组合它 -
// features/support/world.js
const foo = require('./foo.js');
class customWorldobject {
bar(number) {
//do stuff;
}
}
customWorldobject.prototype.foo = foo;
setWorldConstructor(customWorldobject);
但稍后在步骤函数中
// features/support/steps.js
const { Given,When,Then } = require("@cucumber/cucumber");
const assert = require("assert").strict;
When("I increment the variable by {int}",async function (number) {
this.bar(number);
});
When("the variable should blah blah blah",async function() {
this.foo();
});
TypeError: this.foo 不是函数
那么我怎样才能正确地将cucumberjs世界对象分解成单独的文件?
解决方法
我似乎有更好的运气使用:
Object.assign(customWorldObject.prototype,foo);
代替:
customWorldObject.prototype.foo = foo;
不知道为什么 - 他们似乎也做同样的事情。