cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menguji httpClient menggunakan axios menggunakan jest?

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粉659378577P粉659378577504 hari yang lalu745

membalas semua(1)saya akan balas

  • P粉575055974

    P粉5750559742023-09-16 18:54:17

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

    balas
    0
  • Batalbalas