我有一个服务,有时我需要调用外部 API。为了使这个调用更容易编写,我创建了一个 httpService。目前我只有一个 post 方法来接收 url 和数据。
import axios from 'axios'
const httpClient = axios.create({
headers: {
common: {
'Content-Type': 'application/json'
}
}
})
export async function post(url, data) {
try {
const response = await httpClient.post(url, data)
return response.data
} catch (error) {
console.log(error)
throw new Error('Error in POST request')
}
}
我需要使用 jest 为这段代码编写一些测试,但由于我的 url 是通用的,我想传递一个像“http://test.com/api”这样的 url 并伪造一个积极的结果。我怎样才能做到这一点?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以使用 axios-mock-adapter 包:
例如
import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; const mock = new MockAdapter(axios); describe('76630221', () => { test('should pass', async () => { const { post } = await import('./'); mock.onPost('http://test.com/api').reply(200, { code: 0, message: null, }); const data = await post('http://test.com/api', { name: 'nick' }); expect(data).toEqual({ code: 0, message: null }); }); });