跳至内容

jest/no-hooks 样式

它的作用

不允许使用 Jest 安装和卸载挂钩,例如 beforeAll

为什么这样做不好?

Jest 提供了全局函数用于实现设置和卸载任务,该函数在每种测试用例和每组测试用例之前/之后调用。使用这些挂钩促进了测试间共享状态。

本规则以下列函数调用进行报告

  • beforeAll
  • beforeEach
  • afterAll
  • afterEach

示例

javascript
function setupFoo(options) {
  /* ... */
}
function setupBar(options) {
  /* ... */
}

describe("foo", () => {
  let foo;
  beforeEach(() => {
    foo = setupFoo();
  });
  afterEach(() => {
    foo = null;
  });
  it("does something", () => {
    expect(foo.doesSomething()).toBe(true);
  });
  describe("with bar", () => {
    let bar;
    beforeEach(() => {
      bar = setupBar();
    });
    afterEach(() => {
      bar = null;
    });
    it("does something with bar", () => {
      expect(foo.doesSomething(bar)).toBe(true);
    });
  });
});

参考

在 MIT 许可下发布。