尝试使用jest和Enzyme测试以下内容。当我运行npm-coverage时,它表明每个案例都没有经过测试。不太确定如何解决问题
这是代码
renderColumnDropdown = () => {
if (this.props.columnIdList != undefined) {
let columnOptions = Object.keys(this.props.columnIdList).map(key => {
switch (key) {
case 'sort':
return false
case 'filters':
return false
case 'group':
return false
case 'dimensions':
return false
case 'pivot':
return false
case 'pivotanalysis':
return false
default:
return (
<option value={key} key={key}>{this.props.columnIdList[key]}</option>
)
}
})
这通常是我设置测试用例的方式:使用浅层
it('Test renderColumnDropdown function',() => {
wrapper.setProps({
columnIdList:[{
key:'pivotanalysis'
}],
})
wrapper.setState({
}),
wrapper.update();
expect(wrapper.instance().renderColumnDropdown({defaultData:{filters:[{ column:''}]}})).toBeDefined();
});
答案 0 :(得分:1)
您可以通过将所有返回相同值的案例组合在一起来重构代码,以覆盖它们,并且它应该具有覆盖所有分支的第一个键。
switch (key) {
case 'sort':
case 'filters':
case 'group':
case 'dimensions':
case 'pivot':
case 'pivotanalysis':
return false
default:
return (
<option value={key} key={key}>{this.props.columnIdList[key]}</option>
)