为什么在编写javascript测试时使用beforeEach()?

时间:2018-02-17 21:45:05

标签: javascript testing

我正在学习如何为我的代码编写测试,并且我的讲师解释说要将组件呈现在这样的beforeEach()函数中......

describe('CommentBox', () => {
  let component;

  beforeEach(() => {
    component = renderComponent(CommentBox);
  });

  it('has the correct class', () => {
    expect(component).to.have.class('comment-box');
  });

  it('has a text area', () => {
    expect(component.find('textarea')).to.exist;
  });

  it('has a button', () => {
    expect(component.find('button')).to.exist;
  });
});

为什么要使用beforeEach()。为什么不直接在describe函数的顶部声明组件变量...

describe('CommentBox', () => {
  const component = renderComponent(CommentBox);


  it('has the correct class', () => {
    expect(component).to.have.class('comment-box');
  });

  it('has a text area', () => {
    expect(component.find('textarea')).to.exist;
  });

  it('has a button', () => {
    expect(component.find('button')).to.exist;
  });
});

这似乎可以节省一些额外的代码行,而且你需要编写的函数少一些吗?

1 个答案:

答案 0 :(得分:1)

beforeEach在每次测试之前运行。这意味着每个测试都会获得要测试的新数据。

如果你这样做,那么每个测试都可以修改对象,然后污染对象以进行下一次测试。

不要在测试之间创建依赖关系,以便您可以更准确地找到错误或确保测试实际测试您想要的逻辑。

我假设你的测试renderComponent