【发布时间】:2019-11-25 14:47:51
【问题描述】:
我最近开始编程。我在一个使用 React 编程并使用 Enzyme、Mocha 和 Chai 进行单元测试的团队中。请参阅下面的软件包版本。
我的团队坚持每个组件的单元测试文件都应该有以下测试:
beforeEach(() => {
component = mount(<MyComponent />)
})
it('renders with correct properties', () => {
component.setProps({
height: 100,
width: 500,
placeholder: 'Some value here'
})
expect(component.prop('height')).to.equal(100)
expect(component.prop('width')).to.equal(500)
expect(component.prop('placeholder')).to.equal('Some value here')
})
测试到此结束。对我来说,这个测试看起来只是测试 React 设置了 props。我觉得我们可以相信 React 正在做的事情,而是应该测试我们如何使用 React 来渲染我们的组件。我宁愿测试道具值对其他道具、状态的影响,以及组件如何作为道具的结果呈现。
但我是新手,我的团队认为我的担心有误,所以我想我会检查一下:上述测试用例中是否有我遗漏的价值?这是好的做法吗?
相关问题
包
- “酶”:“^3.3.0”,
- "enzyme-adapter-react-16": "^1.1.1",
- “摩卡”:“^5.0.0”,
- “柴”:“3.5.0”
【问题讨论】:
-
这绝对是一个无用的测试,除非你在组件中做一些非常奇怪的 hacky prop 操作
-
此外,这个测试将更优雅地写成一个带有循环的函数,而不是一遍又一遍地写
prop().toEqual -
一个真正有用的测试是查看渲染的输出是否符合您基于某些道具的期望
标签: reactjs unit-testing mocha.js enzyme chai