BookinglyTech News
Software

Bloomberg publica BonoboMock, una librería de mocking para C++ compatible con GoogleTest

La librería, con licencia Apache 2.0, simula funciones que otros frameworks no alcanzan: estáticas, privadas, no virtuales, de plantilla y lambdas.

2 min de lecturaLobsters0 vistas

BonoboMock es una librería de mocking para C++ que Bloomberg mantiene en GitHub bajo licencia Apache 2.0 y que se presenta como compatible con GoogleTest. Su promesa concreta: simular casi cualquier función, no solo aquellas que viven detrás de una interfaz virtual.

Ese es el punto donde suelen encallar los frameworks de mock en C++. Cuando el código que quieres aislar tiene funciones libres, métodos privados o plantillas, lo normal es acabar tocando el código de producción o peleándose con el enlazador. BonoboMock dice cubrir esos casos sin ese peaje.

Qué cubre

La lista de tipos de función que la librería afirma poder simular es amplia: funciones libres o globales, incluidas las declaradas como extern "C"; métodos miembro estáticos; métodos no virtuales; virtuales; protegidos; privados; funciones sobrecargadas y de plantilla; funciones variádicas y lambdas, estas dos últimas a partir de C++11.

Para quien mantiene una base de código antigua, la parte interesante son las del medio: métodos no virtuales, protegidos y privados. Ahí es donde muchos equipos acaban renunciando a testear una clase y dejando esa rama en manos de los tests de integración.

La documentación recoge una guía de inicio rápido, recetas y referencia de API.

Gobernanza y cómo contribuir

El proyecto acepta informes de errores y pull requests, con una guía de contribución propia que conviene leer antes de enviar nada. Las decisiones se toman según una política de gobernanza publicada y todo cambio pasa por revisión de los maintainers.

Para vulnerabilidades, el equipo pide justo lo contrario de lo habitual en un repositorio abierto: no abrir un issue público, sino escribir a opensource@bloomberg.net y esperar a que lo revisen.

Lo que el repositorio no trae son cifras de rendimiento ni comparativas con otros frameworks. Para una librería que trabaja a nivel de plantillas y enlazado ese dato pesa: simular un método privado es media historia si luego el binario de tests se vuelve incómodo de compilar o de ejecutar. Queda por ver si aparece.