Wie teste ich httpClient mit Axios mit Jest?
P粉659378577
P粉659378577 2023-09-15 20:55:32
0
1
591

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粉659378577
P粉659378577

Antworte allen (1)
P粉575055974

您可以使用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 }); }); });
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!