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

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 package axios-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!