【发布时间】:2017-12-11 06:26:36
【问题描述】:
我正在使用 Jest 和 Enzyme 进行测试。我测试正常事件没有问题,但我正在努力寻找正确的方法来触发和测试来自 Native Modules 的组件中的事件。在我的 Jest 设置中,我有以下内容:
jest.mock('NativeEventEmitter', () => class MockNativeEventEmitter{
addListener = () => jest.fn()
removeListener = () => jest.fn()
removeAllListeners = () => jest.fn()
});
但是,我不确定在测试中我是如何实际调度事件的。因此,例如,当用户摇动设备时,我有一个 Native 模块。在组件本身内部是这样设置的:
shakeEvents: ['shaken],
deviceShakeEmitter: {},
componentDidMount() {
this.deviceShakeEmitter = new NativeEventEmitter(Shake)
this.deviceShakeEmitter.addListener('shaken', this['shaken'])
},
我知道对于内置事件,我可以使用 jest.simulate('press') 等,但对于自定义事件,我很难理解如何在测试中处理这个问题。
【问题讨论】:
标签: react-native jestjs