Comment tester httpClient en utilisant axios en utilisant Jest ?
P粉659378577
P粉659378577 2023-09-15 20:55:32
0
1
609

J'ai un service et parfois j'ai besoin d'appeler une API externe. Pour rendre cet appel plus facile à écrire, j'ai créé un httpService. Actuellement, je n'ai qu'une méthode de publication qui reçoit l'URL et les données.

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') } }

Je dois écrire quelques tests pour ce code en utilisant Jest, mais comme mon URL est générique, je veux transmettre une URL comme "http://test.com/api" et simuler un résultat positif. Comment puis-je faire ceci?

P粉659378577
P粉659378577

répondre à tous (1)
P粉575055974

Vous pouvez utiliser le packageaxios-mock-adapter:

Par exemple

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 }); }); });
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!