Я тестирую служебную функцию, которая возвращает целое число, я пытаюсь симулировать его вызов, но не могу найти правильный способ сделать это даже после нескольких часов поиска в Google.
I 'Мы также попробовали spyOn()
, но это не сработало.
Authentication.js
export function auth(username) {
AsyncStorage.getItem('@app:id').then((id) => {
if (id === username) {
return 1;
}
return 0;
});
}
Authentication.test.js
import 'react-native';
import React from 'react';
import renderer from 'react-test-renderer'; // Note: test renderer must be required after react-native.
import mockAxios from 'axios';
import mockAsyncStorage from '@react-native-community/async-storage';
import auth from '../App/Utils/Authorization';
test('should check whether the user whose username is entered as a paramter is the same as the user logged in the application', () => {
auth = jest.fn();
expect(auth).toHaveReturned();
expect(mockAsyncStorage.getItem).toHaveBeenCalledTimes(1);
expect(mockAsyncStorage.multiRemove).toHaveBeenCalledWith('@app:id');
});
Я ожидалсимуляция вызова auth()
и успешное тестирование, вместо этого я получаю ошибку "auth" is read-only
в качестве вывода при запуске yarn test
.