在使用 Axios 进行 Jest 测试时,首先需要理解几个基础概念:
原因:
解决方法:
假设你有一个简单的 API 调用函数 fetchData
,你可以这样测试它:
// api.js
export const fetchData = async () => {
const response = await axios.get('/endpoint');
return response.data;
};
// api.test.js
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import { fetchData } from './api';
describe('fetchData', () => {
let mock;
beforeEach(() => {
mock = new MockAdapter(axios);
});
afterEach(() => {
mock.restore();
});
it('should fetch data successfully', async () => {
const data = { message: 'success' };
mock.onGet('/endpoint').reply(200, data);
const result = await fetchData();
expect(result).toEqual(data);
});
it('should handle errors', async () => {
mock.onGet('/endpoint').networkError();
await expect(fetchData()).rejects.toThrow('Network Error');
});
});
通过这种方式,你可以确保 Axios 请求在 Jest 测试中得到正确模拟和处理,从而提高测试的可靠性和覆盖率。
领取专属 10元无门槛券
手把手带您无忧上云