测试功能返回不同的情况-开玩笑的酶

时间:2019-04-11 14:38:10

标签: reactjs jestjs

尝试运行测试,我的函数没有返回基于我的情况的期望值。不确定我是否正确应用了条件

这是函数:

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
    })
   return (
    default:
    return (
      <option value={key} key={key}>{this.props.columnIdList[key]}</option>
    )
  return (
   <select value={this.state.column} name='column' id='filter-column' onChange={this.handleChange} defaultValue={this.props.defaultData != null ? this.props.defaultData.column : 'default'}>
    {columnOptions}
  </select>
)

到目前为止,这是我要进行的测试:将笑话和酶用于React JS

it('Test renderColumnDropdown method',() => {
    wrapper.setProps({
        columnIdList:[],
        columnOptions:[{
            case:'sort'
         }]   
     })
     wrapper.update();
     expect(wrapper.instance().renderColumnDropdown({columnOptions:[{case:""}]})).toEqual();
});

我希望返回一条消息,该消息等于false,但是现在返回“

可以调整我的道具以确保可以测试每种情况的场景

1 个答案:

答案 0 :(得分:2)

renderColumnDropdown遍历columnIdList道具,而不是columnOptions

可能应该是:

wrapper.setProps({
    columnIdList:[{
        case:'sort'
     }]   
 })

它也不接受renderColumnDropdown({columnOptions:[{case:""}]})

之类的参数

该函数返回React元素,可以渲染它们:

const columnsWrapper = shallow(wrapper.instance().renderColumnDropdown());

然后可以断言包装器那里是否应该有选项:

expect(columnsWrapper.find('select').dive().find('option')).to.have.lengthOf(0);