Cucumberjs 如何将 world.js 分解成更小的文件

问题描述

好的,所以我有一个使用 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;

不知道为什么 - 他们似乎也做同样的事情。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...