如何获取嵌套props函数的值以进行单元测试

时间:2019-02-06 16:45:40

标签: reactjs unit-testing jestjs enzyme

我在获取嵌套props函数的值时遇到问题。

this.props.user.getPerson().getData()

getPerson返回带有与人相关的数据的新对象。

getData返回与个人相关的数据。

为了便于阅读,它是分开的,我想使其用于单元测试。

测试1:

 let _wrapper,
    initialProps

  beforeEach(() => {
    initialProps = {
      user: {
        getPerson: () => {}
      }
    }
    _wrapper = shallow(<Test1 {...initialProps} />)
  })
some tests...
})

它返回了TypeError: Cannot read property 'getData' of undefined

Test2

 let _wrapper,
    initialProps

  beforeEach(() => {
    initialProps = {
      user: {
        getPerson: () => { getData: () => {} }
      }
    }
    _wrapper = shallow(<Test2 {...initialProps} />)
  })
some tests...
})

它返回了TypeError: Cannot read property 'getData' of undefined 与Test1相同的错误。

我试图通过传递函数来获取props函数的值,但是从第二个函数开始却不起作用。

如何获取嵌套props函数的值?

1 个答案:

答案 0 :(得分:1)

您需要wrap object literals in parentheses to return them from arrow functions

initialProps = {
  user: {
    getPerson: () => ({ getData: () => { } })  // wrap in parentheses
  }
}