sym blog
>
jest mock axios complex implement
1. mock axios
to implement this, we need ensure we have an axios
file in your project.filename must be axios
, axios.js
or axios.ts
1 2 3 4 5 6
|
const mockAxios: any = jest.genMockFromModule("axios"); mockAxios.create = jest.fn(() => mockAxios);
export default mockAxios;
|
2. mock some service data;
you can get the mock data according to the special url .
1 2 3 4 5 6 7 8 9 10 11
| const mockData: any = { "/api/sample/data": { data: {
}, status: 200 } } export const getMockDataByUrl = (url: string) => { return mockData[url]; }
|
3. mock axios request method
1 2 3 4 5 6 7 8 9
| import {getMockDataByUrl} from "service";
mockAxios.request = (params: any) => { const mockData = getMockDataByUrl(params.url); return new Promise((resolve) => { resolve(mockData) }) }
|