作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一个在方法中使用 ToastAndroid 组件的 React Native 组件,在使用 enzyme 进行测试时,我不断收到错误 TypeError: _reactNative.ToastAndroid.show is not a function
我正在使用 react-native-mock-renderer
来开 Jest ,我的组件有一个方法可以通过 onPress 处理程序调用。
validateAndProceed = () => {
ToastAndroid.show(
'Show toast',
ToastAndroid.SHORT,
);
};
和我的测试来验证
it('should validate and process', () => {
const wrapper = shallow(<Component
/>);
const instance = wrapper.dive().instance();
jest.spyOn(instance, 'validateAndProceed');
instance.validateAndProceed();
expect(instance.validateAndProceed).toHaveBeenCalled();
});
我为 ToastAndroid 创建了一个自定义模拟
const ToastAndroid = {
SHORT: '',
LONG: '',
TOP: '',
BOTTOM: '',
CENTER: '',
show: jest.fn(),
showWithGravity: jest.fn(),
showWithGravityAndOffset: jest.fn(),
};
module.exports = ToastAndroid;
还是不行
最佳答案
您不需要模拟整个模块。仅模拟相关函数和常量对我有用。
示例:
ToastAndroid.showWithGravity = jest.fn();
ToastAndroid.show = jest.fn();
关于unit-testing - Enzyme Mock ToastAndroid React Native 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52024989/
我正在测试一个在方法中使用 ToastAndroid 组件的 React Native 组件,在使用 enzyme 进行测试时,我不断收到错误 TypeError: _reactNative.Toas
我是一名优秀的程序员,十分优秀!