TypeError:无法读取未定义的属性“标题”

时间:2019-05-21 20:34:59

标签: javascript reactjs jestjs

尝试测试以下函数是否被正确调用。

这是使用Jest和Enzyme进行React Js的功能:

changeCurrentColumn = (e) => {
 {
   if(e.target.value !== 'default')
   {
     const id = e.target.value
     const name = this.props.defaultData[e.target.value].caption
     this.props.setCurrentColumn({ name, id })
   }
 }
}

这是测试:

it('changeCurrentColumn function test', () => {
 wrapper.setProps({
   defaultData:[{
      caption:"test"
   },],
 }),
 wrapper.update();

错误指向({target:'test'}))

expect(wrapper.instance().changeCurrentColumn({target:'test'})).toBeDefined(); 
})

在“测试”之后可以添加什么以便读取“标题”的属性?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将defaultData的类型更改为类似这样的对象。

it('changeCurrentColumn function test', () => {
    const event = {
        target: {
            value: "caption"
        }
    }
    wrapper.setProps({
      defaultData:{
         caption:"test"
      },
    }),
    wrapper.update();
    expect(wrapper.instance().changeCurrentColumn(event)).toBeDefined()
});

或将值传递为0,以从现有的defaultData中获得休息。

it('changeCurrentColumn function test', () => {
    const event = {
        target: {
            value: 0
        }
    }
    wrapper.setProps({
      defaultData:[{
         caption:"test"
      }],
    }),
    wrapper.update();
    expect(wrapper.instance().changeCurrentColumn(event)).toBeDefined()
});