使用Jest /酶测试每种情况/返回

时间:2019-05-30 12:28:44

标签: unit-testing jestjs enzyme

尝试使用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();
});

1 个答案:

答案 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>
        )