Я изучаю тестирование React Native и Jest.
У меня есть фрагмент кода, где я сохраняю некоторое значение в AsyncStorage при нажатии кнопки. Когда кнопка нажата, я вызываю следующий метод.
saveState = () => {
AsyncStorage.setItem('saveState', 'button clicked');
}
Теперь я хотел бы провести модульное тестирование вышеуказанного метода, чтобы проверить, нормально ли работает мое хранилище Asyn c.
Мне удалось создать снимок, а также протестировать оставшиеся функциональные возможности метода, но не этот. Но я не совсем знаком с тем, как это сделать?
2-е редактирование ------
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