模拟更改不适用于trim()酶

时间:2019-09-02 13:36:52

标签: reactjs jestjs enzyme

我在遇到错误时正在使用此测试,因此我使用了trim函数来解决该问题,但这些测试失败,尝试了不同的方法,但未找到解决方法

const generalWrapper = shallow(<AddVehiclesTable {...generalProps} />)
const generalInstance = generalWrapper.instance()

describe('onSearchChange', () => {
    test('should change the "search" state', () => {
        const theFilterValue = 'a new filter value'
        generalWrapper.find('.filter-input').simulate('change', { target: { value: theFilterValue } })

        const expectedState = Object.assign({}, generalInstance.state)
        expectedState.searchValue = { 'target': { 'value': theFilterValue } }
        expect(generalInstance.state).toEqual(expectedState)
        expect(generalInstance.state.userInteractedWithComponent).toBe(true)
    })
})

onSearchChange (searchValue) {
    const value = searchValue.trim()
    this.setState({ searchValue: value, userInteractedWithComponent: true })
}

错误消息

  

TypeError:searchValue.trim不是函数

任何建议

1 个答案:

答案 0 :(得分:0)

您的函数将Object作为参数。 公开您需要的字段

我看不到整个图片,但是可以猜到您需要类似的东西

onSearchChange ({ target: { value: incomeValue } }) {
    const value = incomeValue.trim()
    this.setState({ searchValue: value, userInteractedWithComponent: true })
}