我最近开始编程。我所在的团队在 React 中编程并使用 Enzyme、Mocha 和 Chai 进行单元测试。请参阅下面的软件包版本。
在测试有多个用例需要不同 prop 值的组件时,我应该在每个测试中使用 beforeEach() 然后 setProps() 还是应该在开始时执行显式的 mount()(或shallow())每次测试?有关系吗?
例如,我可以使用 beforeEach() 在没有任何props的情况下进行挂载,然后在每个测试中使用 setProps() 像这样(使用伪代码):
describe('MyComponent', () => {
beforeEach(... let component = mount(<MyComponent />) ...)
it('tests use case 1', () => {
// set prop A = 123
component.setProps({A: 123})
// assert some stuff
})
it('tests use case 2, () => {
// set prop A = 456 and B = 'foo'
component.setProps({A: 456})
component.setProps({B: 'foo'})
// assert some stuff
})
})
或者我可以在每次测试开始时执行特定于用例的挂载,在挂载中传递props,如下所示:
describe('MyComponent', () => {
it('tests use case 1', () => {
...mount(<MyComponent A=123 />)
// assert some stuff
})
it('tests use case 2, () => {
...mount(<MyComponent A=456 B='foo' />)
// assert some stuff
})
})
每种方法的优缺点是什么?有最佳实践吗?
套餐
- "酶": "^3.3.0",
- “酶适配器react 16”:“^1.1.1”,
- "摩卡": "^5.0.0",
- “柴”:“3.5.0”