【问题标题】:Test function return different case scenario - Jest enzyme测试函数返回不同的案例场景 - Jest 酶
【发布时间】:2019-04-11 14:38:09
【问题描述】:

尝试运行测试,但我的函数没有根据我的情况返回我期望的结果。不确定我是否正确应用了条件

这里是函数:

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();
});

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

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

【问题讨论】:

    标签: reactjs jestjs


    【解决方案1】:

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

    【讨论】:

    • 我已经调好了,怎么叫。我尝试了以下 expect(wrapper.instance().renderColumnDropdown({columnIdList:[{case:""}]})).toEqual();但是仍然返回其他东西
    • 如果不知道代码的真实样子,就不可能准确地回答这个问题。请提供stackoverflow.com/help/mcve。它究竟返回了什么以及您期望它返回什么?您没有为 toEqual 提供值。
    • 我在那里添加了整个函数。我希望这种情况下的情况:'sort' to equal False
    • 我得到以下信息:
    猜你喜欢
    • 2018-03-25
    • 2018-03-10
    • 2019-04-21
    • 2019-04-24
    • 1970-01-01
    • 2020-08-22
    • 2021-09-21
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多