测试功能返回不同的情况场景 - Jest酶

问题描述 投票:0回答:1

尝试运行测试,我的功能并没有根据我的情况返回我的预期。不确定我是否正确应用条件

这是功能:

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

以下是我到目前为止测试的内容:使用Jest和酶进行React JS

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

我希望返回一条消息,说明等于假,但现在正在返回“

什么可以调整我的道具,以确保我可以测试每个案例场景

reactjs jestjs
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.