🙄
Axios createしたinstanceをJestでMockする
このようにbaseUrlなどを設定してaxios.createしたインスタンスをmockしたい。
const axiosInstance = axios.create({
baseURL: 'http://localhost:3000',
headers: {
'Content-Type': 'application/json',
},
})
axios-mock-adapterというモジュールが便利。
以下のようにmockを作成可能。
この例では、post requestに対して、response.data = { message: 'Hello world' }
を返すmockになる。
import MockAdapter from 'axios-mock-adapter'
import { axiosInstance } from 'src/axios' // axios instanceのpath
let mock = new MockAdapter(axiosInstance)
mock.onPost().reply(200, { message: 'Hello world.' })
it('some test', async () => {
// axiosを使用した関数のテスト
// ...
})
Discussion