Teste
Testes para o11 driver C++ usam Catch, uma estrutura de teste para C++.
Cada classe no driver tem um arquivo correspondente em src/mongocxx/test
. Porque o novo driver envolve libmongoc, preferimos simular e testar o comportamento de classes individuais, em vez de testar o comportamento de ponta a ponta das operações em um mongod em execução. Em outras palavras, esses são testes de unidade e não testes de integração.
Também temos testes de integração para este driver em test/collection.cpp
.
Executando os testes existentes
Construa os testes com:
make
Isso gerará binários de teste. Você pode executar todos os testes com:
make test
ou, para obter uma saída mais detalhada com Catch, execute o binário gerado:
./build/src/mongocxx/test/test_driver
ou você pode executar o comando ctest e usar as várias sinalizações do ctest. Por exemplo:
ctest -V
pode ser usado para executar os testes com saída detalhada, ou
ctest -R bson
poderia ser usado para executar somente os testes BSON .
Executando testes de integração
Alguns dos testes exigem uma instância do mongod em execução. Para isso, primeiro baixe o servidorMongoDB .
Em seguida, implemente um mongod na porta padrão com o comando:
mongod --setParameter enableTestCommands=1
se estiver instalado, caso contrário, navegue até o diretório que contém o executável mongod e execute:
./mongod --setParameter enableTestCommands=1
seguindo qualquer comando com quaisquer sinalizações que você deseja usar, exceto --port
. Enquanto o mongod estiver em execução, execute os testes normalmente.
Escrevendo novos testes
Se você quiser adicionar um recurso ao driver, escreva um teste para ele também. As adições a classes existentes devem ter novas seções adicionadas aos casos de teste existentes:
TEST_CASE("existing_class", "[existing_class]") { SECTION("Can do some new thing") { ... REQUIRE(new_thing_works); } }
Se você estiver adicionando uma nova classe, adicione um novo arquivo de teste para ela no diretório test
. O nome do arquivo de teste deve corresponder ao nome do arquivo da nova turma. Você precisará adicionar seu arquivo como fonte para o destino de teste do driver, em src/mongocxx/test/CMakeLists.txt
:
set(mongocxx_test_sources ... some_new_class.cpp ... )