【问题标题】:jest.spyOn not calledjest.spyOn 未调用
【发布时间】:2018-06-15 07:36:47
【问题描述】:

我正在尝试使用 jest 和酶在 react native 中测试这个组件:

export class MyItem extends PureComponent {

    _onDelete = () => {
        console.log('Deleting !')
    }

    _renderSwpItem = () => {
        return (
            <TouchableOpacity id="delete" onPress={this._onDelete}>
                <Icon name="delete" size={50} color={Colors.white}/>
            </TouchableOpacity>     
        )
    }
    ...
}

到目前为止,我写道:

describe('Testing MyItem', () => {
    const wrapper = shallow( <MyItem />)

    it('_renderSwptItem press works', () => {
        const instance = wrapper.instance()
        const swpWrapper = shallow(instance._renderSwpItem())
        const deletePressSpy = jest.spyOn(instance, '_onDelete')
        swpWrapper.find('#delete').simulate('press')
        expect(deletePressSpy).toHaveBeenCalledTimes(1)
    })
})  

我可以在日志中看到 Deleting !expect(deletePressSpy).toHaveBeenCalledTimes(1) 失败。我究竟做错了什么 ?

【问题讨论】:

    标签: react-native jestjs enzyme


    【解决方案1】:

    似乎调用 spyOn 调用shallow(instance._renderSwpItem()) 可以解决问题。不知道为什么想到...

    【讨论】:

      猜你喜欢
      • 2020-11-19
      • 1970-01-01
      • 2020-05-02
      • 2022-01-11
      • 2019-06-16
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2022-01-15
      相关资源
      最近更新 更多