从beforeEach提取函数并分配给`this`变量

时间:2019-02-01 12:04:22

标签: javascript mocha

我的beforeEach设置非常冗长,并且在不同文件之间的不同测试用例之间可以重复使用。

有没有一种方法可以提取beforeEach的正文并仍分配给this变量?

示例:

describe(function () {
  beforeEach(async function () {
    this.a = a.new(...);
    this.b = b.new(...);
    this.c = c.new(...);
    ...
  });
  describe("a", function () {
    it("calls a func", async function () {
      await this.a.func();
    });
  });
});

并将beforeEach的主体提取到setup函数中(在另一个文件中):

describe(function () {
  beforeEach(async function () {
    [ this.a, this.b, this.c ] = setup(); 
  });
  ...
});

1 个答案:

答案 0 :(得分:0)

//exampleSetup.js

async function setup() {
    const a = a.new(...);
    const b = b.new(...);
    const c = c.new(...);
    return [a, b, c];
}

module.exports = setup;

//tester.js

const setup = require("exampleSetup");
let a, b, c;
beforeEach(async function () {
    [ a, b, c ] = setup()
    ...
  });