¿Necesitas crear un servidor mock en Go para tus pruebas unitarias? En este post, te comparto mi experiencia creando un servidor mock que regresa la respuesta que esperas, y que se ejecuta en un proceso separado para que no afecte las pruebas unitarias. Puedes aprender más sobre cómo crear servidores mock en Go, te invito a leer el post original: https://medium.com/@sirpyerre/creando-un-servidor-mock-en-go-64239cf7540d
En mi trabajo, me enfrenté a la situación de tener pruebas unitarias que se conectaban a un servidor externo. Esto generaba una dependencia no deseada en las pruebas, lo que dificultaba su ejecución y mantenibilidad.
Junto con un compañero, decidimos crear un servidor mock que nos permitiera controlar las respuestas a las peticiones. De esta manera, podríamos aislar las pruebas del servidor externo y asegurarnos de que siempre obtengan los resultados esperados.
Para crear el servidor mock, utilizamos el paquete httptest de Go. Este paquete proporciona herramientas útiles para realizar pruebas HTTP, incluyendo la creación de servidores mock.
El proceso para crear un servidor mock es sencillo:
- Definir un handler: El handler es una función que se encarga de procesar las peticiones que llegan al servidor mock. En el handler, puedes definir la respuesta que deseas que se regrese para cada tipo de petición.
-
Crear el servidor mock: Utilizamos la función
CreateMockServer
del paquete httptest para crear el servidor mock. Esta función recibe como parámetros la URL y el puerto donde se va a ejecutar el servidor mock, y el handler que definimos en el paso 1. -
Iniciar el servidor mock: Una vez creado el servidor mock, lo iniciamos utilizando el método
Start()
. - Utilizar el servidor mock en las pruebas unitarias: En nuestras pruebas unitarias, podemos utilizar el servidor mock como si fuera el servidor externo real. Para ello, solo tenemos que configurar la URL de la prueba para que apunte al servidor mock.
En el post, también comparto un ejemplo de cómo utilizar el servidor mock en una prueba unitaria. En este ejemplo, creamos un handler que regresa un usuario con id 1 y nombre Peter, y lo utilizamos para probar una función que obtiene información de un usuario.
¿Te ha resultado útil este resumen? Si quieres aprender más sobre cómo crear servidores mock en Go, te invito a leer el post original: https://medium.com/@sirpyerre/creando-un-servidor-mock-en-go-64239cf7540d
¡No olvides dejar un comentario si tienes alguna pregunta o sugerencia!