Estoy usando Jest para probar algunos puntos finales de API, pero estos puntos finales pueden fallar falsamente en algunos momentos, debido a problemas de red y no a errores de mi programa. Así que quiero volver a hacer la prueba varias veces (5 veces, por ejemplo) con un retraso, y si todos estos intentos fallaron, Jest debería informar una falla.
¿Cuál es la mejor manera de lograr esto? ¿Jest u otras bibliotecas proporcionan una solución? ¿O debería escribir mi propio programa con algo como setInterval ?
Para las pruebas, lo ideal es que no haga llamadas de red, ya que ralentizan las pruebas. Además, es posible que se esté comunicando con una API externa que, idealmente, no debería ser parte de su código de prueba. También puede dar lugar a falsos negativos como ya ha observado. Puedes hacer algo como a continuación:
async function getFirstMovieTitle() { const response = await axios.get('https://dummyMovieApi/movies'); return response.data[0].title; }Para probar la llamada de red anterior, debe simular su solicitud de obtención de axios en su prueba. Para probar el código anterior, debe
jest.mock('axios'); it('returns the title of the first movie', async () => { axios.get.mockResolvedValue({ data: [ { title: 'First Movie' }, { title: 'Second Movie' } ] }); const title = await getFirstMovieTitle(); expect(title).toEqual('First Movie'); });Intenta leer más sobre burlarse en broma para entender mejor