我正在学习如何为我的代码编写测试,并且我的讲师解释说要将组件呈现在这样的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;
});
});
这似乎可以节省一些额外的代码行,而且你需要编写的函数少一些吗?
答案 0 :(得分:1)
beforeEach
在每次测试之前运行。这意味着每个测试都会获得要测试的新数据。
如果你这样做,那么每个测试都可以修改对象,然后污染对象以进行下一次测试。
不要在测试之间创建依赖关系,以便您可以更准确地找到错误或确保测试实际测试您想要的逻辑。
我假设你的测试renderComponent
。