Heim > Fragen und Antworten > Hauptteil
Ich habe einen Dienst und manchmal muss ich eine externe API aufrufen. Um das Schreiben dieses Aufrufs zu vereinfachen, habe ich einen httpService erstellt. Derzeit habe ich nur eine Post-Methode, die die URL und Daten empfängt.
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') } }
Ich muss mit Scherz einige Tests für diesen Code schreiben, aber da meine URL generisch ist, möchte ich eine URL wie „http://test.com/api“ übergeben und ein positives Ergebnis vortäuschen. Wie kann ich das machen?
P粉5750559742023-09-16 18:54:17
您可以使用 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 }); }); });