Вы можете имитировать поведение axios.get
, используя jest.mock
. Поместите приведенный ниже код над разделом describe
:
jest.mock('axios', () => ({
get: jest.fn().mockReturnValue(Promise.reject('error'))
}));
И вы протестируете ошибку, как показано ниже:
it('get fails', async () => {
await expect(API.get("bad_url")).rejects.toEqual('error');
});
Точный код
jest.mock('axios', () => ({
get: jest.fn().mockReturnValue(Promise.reject('error')),
}));
describe('API Throws Errors', () => {
it('get fails', async () => {
await expect(API.get(GROUPS.url())).rejects.toEqual('error');
});
});
Примечание :
Если у вас есть другой тестовый пример, который не должен быть провален, вы можете просто имитировать его, чтобы вернуть Promise.resolve()
. Или вы можете просто очистить макет.
describe('API Throws Errors', () => {
it('get fails', async () => {
await expect(API.get(GROUPS.url())).rejects.toEqual('error');
});
it('should success', async () => {
Axios.get.mockReturnValue(Promise.resolve(SOME_VALUE));
await expect(API.get(GROUPS.url())).resolves.toEqual(SOME_VALUE);
});
});