Я пытаюсь использовать Jest для юнит-тестирования.Часть тестирования состоит в том, чтобы издеваться над Axios, но по какой-то причине он не вызывается.
Вот мой /__mocks__/axios.js
код:
export default {
post: jest.fn(() => Promise.resolve({})),
};
Вот мой тестовый код:
import mockAxios from 'axios';
import { registerUser } from '../../actions/auth';
import user from '../fixtures/user';
describe('Register User', () => {
test('Should call register API and redirect to login', async () => {
const historyMock = { push: jest.fn() };
mockAxios.post.mockImplementationOnce(() => Promise.resolve());
await registerUser(user, historyMock);
expect(mockAxios.post).toHaveBeenCalledTimes(1);
});
});
Также вот код registerUser:
export const registerUser = (user, history) => dispatch => axios
.post('/users/register', user)
.then(() => history.push('/login'))
.catch((err) => {
dispatch(handleError(err));
});
Но по какой-то причине я продолжаю получать сообщение об ошибке:
Register User › Should call register API and redirect to login
expect(jest.fn()).toHaveBeenCalledTimes(1)
Expected mock function to have been called one time, but it was called zero times.
35 | await registerUser(user, historyMock);
36 |
> 37 | expect(mockAxios.post).toHaveBeenCalledTimes(1);
Любые идеи, почему макет нерабочий?