Gabriel Jiménez | Hace 7 días
En este artículo, aprenderemos qué es un Mock Server y cómo podemos usarlo con React, para simular la comunicación entre el frontend y el backend. Además, conoceremos algunas de las librerías más usada para crear un Mock Server. Por último, desarrollaremos un caso práctico usando Jest, React Testing Library y un Mock Server.
Un Mock Server es una simulación de un servidor real. Podemos verlo como un actor de doblaje — se encarga de sustituir al actor principal en diferentes escenas. Donde nuestro actor principal es el servidor real y actor de doblaje es nuestro mock server.
Para dejarlo más claro, veamos la figura 1.
Para entender cómo funciona, veamos la figura 2.
Entonces, un mock server se compone de tres cosas:
En el mercado, ya existen librerías de terceros encargadas de crear un mock server de forma sencilla. Sin embargo, cada una de ellas resuelve el problema de un mock server desde una perspectiva diferente. A continuación listaremos algunas de estas herramientas.
Mock Service Worker es una librería para simular peticiones a nuestra API, tanto para el navegador como para Node.
Si quieres como trabajar MSW con Jest y React Testing React para probar tus componentes, te recomiendo mi artículo: Cómo usar Mock Service Worker para simular las llamadas a tu API
Nock es otra librería para simular peticiones a nuestra API, pero únicamente funciona en un entorno Node.
Te dejo el enlace por si quieres aprender más sobre como utilizarlo con Jest, React Testing Library: Cómo simular tu API en React con Nock y Jest para mejorar tus pruebas
Las aplicaciones React cada día se han vuelto más dinámicas, por lo que la comunicación con el backend se hace más constante. A continuación se listan algunos puntos importantes de porque debería usar un Mock Server.
Un mock server es de gran utilidad cuando no queremos depender de configurar nuestro backend localmente. Permite simular las respuestas dependiendo el contexto de nuestra aplicación. Además, en aplicaciones React facilita el desarrollo y puede hasta evitar que los costos al comunicarse con un servicio tercero aumenten.