Creando un servidor mock en Go

Sirpyerre Rojas
2 min readJul 7, 2023
Photo by Ralph (Ravi) Kayden on Unsplash

En mi trabajo estaba haciendo unas pruebas unitarias que entre otras cosas se conectaban a un servidor externo, pero no quería que las pruebas dependieran de ese servidor externo.

Junto con un compañero se nos ocurrió crear un servidor mock que regresara la respuesta que esperábamos, y que se ejecutará en un proceso separado para que no afectará las pruebas unitarias.

Para el unit test usamos la librería testify, que nos permite hacer mocks de las funciones que queramos; la verdad yo prefiero usar el paquete test de la librería estándar pero es lo que se está usando en el equipo.

En go puedes usar un servidor de test mediante el paquete httptest.

Para crear el servidor mock, lo que hice fue crear una función que recibe como parámetro la url con el puerto donde se va a ejecutar el servidor mock, y un handler que va a ser el encargado de procesar las peticiones que lleguen al servidor mock. Algo así:

func CreateMockServer(address string, handler http.Handler) *httptest.Server {
mockServer , err := net.Listen("tcp", address)…

--

--

Sirpyerre Rojas

Desarrollador backend apasionado, especializado en Go y PHP. Siempre intentando mejorar mi código. Disfruto pasar tiempo con mi esposa e hijos.