Bagaimana untuk menguji httpClient menggunakan axios menggunakan jest?
P粉659378577
P粉659378577 2023-09-15 20:55:32
0
1
724

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

membalas semua(1)
P粉575055974

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 });
    });
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan