Rumah > Soal Jawab > teks badan
Saya mempunyai perkhidmatan dan kadangkala saya perlu menghubungi API luaran. Untuk menjadikan panggilan ini lebih mudah untuk ditulis, saya mencipta httpService. Pada masa ini saya hanya mempunyai kaedah pos yang menerima url dan data.
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') } }
Saya perlu menulis beberapa ujian untuk kod ini menggunakan jest, tetapi memandangkan url saya adalah generik, saya ingin menghantar url seperti "http://test.com/api" dan memalsukan keputusan positif. Bagaimana saya boleh melakukan ini?
P粉5750559742023-09-16 18:54:17
Anda boleh menggunakan pakej axios-mock-adapter:
Sebagai contoh
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 }); }); });