Pruebas para el uso del controlador C++11 Catch, un marco de pruebas para C++.
Cada clase del controlador tiene un archivo correspondiente en src/mongocxx/testDado que el nuevo controlador encapsula libmongoc, preferimos simular y probar el comportamiento de clases individuales en lugar de probar el comportamiento integral de las operaciones con mongod en ejecución. En otras palabras, se trata de pruebas unitarias, no de pruebas de integración.
También tenemos pruebas de integración para este controlador en test/collection.cpp.
Ejecución de las pruebas existentes
Construya las pruebas con:
make
Esto generará los binarios de prueba. Puedes ejecutar todas las pruebas con:
make test
o, para obtener una salida más detallada con Catch, ejecute el binario generado:
./build/src/mongocxx/test/test_driver
o puede ejecutar el comando ctest y hacer uso de las distintas banderas de ctest. Por ejemplo:
ctest -V
se puede utilizar para ejecutar las pruebas con salida detallada, o
ctest -R bson
podría usarse para ejecutar solo las pruebas bson.
Ejecución de pruebas de integración
Algunas pruebas requieren una instancia de Mongod en ejecución. Para ello, primero descargue el servidor MongoDB.
Luego implemente un mongod en el puerto predeterminado con el comando:
mongod --setParameter enableTestCommands=1
Si está instalado, de lo contrario navegue al directorio que contiene el ejecutable mongod y ejecute:
./mongod --setParameter enableTestCommands=1
Después de cada comando, agregue las banderas que desee usar, excepto --port. Mientras mongod se esté ejecutando, ejecute las pruebas normalmente.
Escribir nuevas pruebas
Si desea añadir una función al controlador, escriba también una prueba para ella. Las adiciones a las clases existentes deben incluir nuevas secciones en los casos de prueba existentes:
TEST_CASE("existing_class", "[existing_class]") { SECTION("Can do some new thing") { ... REQUIRE(new_thing_works); } }
Si vas a añadir una nueva clase, por favor añade un nuevo archivo de prueba para ella en el directorio test. El nombre del archivo de prueba debe coincidir con el nombre del archivo de la nueva clase. Necesitarás agregar tu archivo como origen para el objetivo de prueba del controlador, en src/mongocxx/test/CMakeLists.txt:
set(mongocxx_test_sources ... some_new_class.cpp ... )