Desde que el repositorio oficial golang/mock
fue archivado, muchos desarrolladores de Go han estado buscando alternativas para continuar generando mocks sin tener que reescribir medio proyecto.
Ahí es donde entra Uber Mock.
¿Qué es Uber Mock?
Uber Mock es un fork directo de GoMock, mantenido activamente por el equipo de ingeniería de Uber. Después de que el repositorio original fuera archivado, Uber decidió continuar el desarrollo de forma oficial, manteniendo compatibilidad total con la API existente.
En la práctica, es como si el mantenimiento de golang/mock
se hubiera trasladado a un nuevo hogar.
✅ Ventajas de Uber Mock
1. Migración sin dolor
La API es idéntica a la de golang/mock
. Si ya tienes un proyecto con mocks generados usando mockgen
, lo único que necesitas hacer es cambiar el import:
- import "github.com/golang/mock/gomock"
+ import "go.uber.org/mock/gomock"
Y listo. Tus tests seguirán funcionando como antes.
2. Mantenimiento activo
Uber lo actualiza regularmente con bug fixes, mejoras internas y compatibilidad con nuevas versiones de Go. Esto es clave si no quieres que tus dependencias se queden obsoletas.
3. Probado en producción
No es un proyecto experimental. Está en uso dentro de la infraestructura de Uber y en miles de otros proyectos que confiaban en golang/mock
. La comunidad lo ha adoptado rápidamente como la alternativa de facto.
4. Compatibilidad total
Uber Mock funciona con el código generado por mockgen
, las interfaces existentes, y todo el ecosistema que giraba en torno a golang/mock
. Si tu proyecto tiene una gran base de tests, esto es un alivio.
⚠️ Posibles contras a tener en cuenta
Ninguna herramienta es perfecta. Uber Mock también tiene sus limitaciones:
• Dependencia externa
Ahora dependes del mantenimiento de Uber, lo cual no es crítico (es una empresa que cuida su stack), pero no es lo mismo que un repositorio oficial de la comunidad Go.
• Falta de features modernas
Herramientas como Mockery han evolucionado más en términos de DX (developer experience). Por ejemplo, generación más sencilla, compatibilidad con tipos genéricos, y una CLI más amigable.
• Sintaxis algo verbosa
Si ya usabas GoMock, sabes que los tests pueden volverse algo pesados de leer. Esto sigue igual. Uber Mock no ha hecho grandes cambios en la ergonomía de uso.
🤔 ¿Deberías migrar?
Si ya usabas golang/mock
, sí. Uber Mock es la ruta natural: no cambias tu código, no rompes nada, y sigues recibiendo updates.
Si estás empezando un proyecto nuevo, podrías comparar con otras opciones como:
- Mockery: generación a partir de anotaciones o CLI.
- Testify: más sencillo, aunque con menor control sobre los mocks.
- Hand-written mocks: para los más minimalistas.
💬 ¿Ya lo estás usando?
¿Te tocó migrar desde golang/mock
? ¿Estás explorando otras opciones como Mockery? ¿O prefieres evitar los mocks y testear a otro nivel?
¡Te leo en los comentarios! 👇
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.