【发布时间】:2020-07-24 04:11:24
【问题描述】:
我正在学习 React Native 和 Jest 测试。
我有一段代码在单击按钮时将一些值存储在 AsyncStorage 中。单击按钮时,我会调用以下方法。
saveState = () => {
AsyncStorage.setItem('saveState', 'button clicked');
}
现在我想对上述方法进行单元测试,看看我的异步存储是否工作正常。
我能够创建快照并测试该方法的剩余功能,但不能测试这个。但是我不太熟悉如何操作?
第二次编辑 ------
jest.mock('react-native', () => ({
setItem: jest.fn()
}));
describe('<MyComponent/>', () => {
let tnCScreen
let props
let instance
beforeEach(() => {
tnCScreen = shallow(<MyComponent {...props} />)
instance = tnCScreen.instance()
})
test('test saveState method is called', () => {
expect(instance.saveState()).toBeCalled
expect(AsyncStorage.setItem).toBeCalledWith('saveState', 'button clicked');
})
})
当我尝试上述方法时,我得到以下错误
expect(received).toBeCalledWith(...expected)
Matcher error: received value must be a mock or spy function
Received has value: undefined
【问题讨论】:
-
请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
标签: react-native unit-testing jestjs enzyme