C++:
Escrevendo testes
Como Fazer:
Usando o Framework de Testes do Google
Uma das bibliotecas de terceiros mais populares para escrever testes em C++ é o Google Test. Primeiramente, você precisará instalar o Google Test e vinculá-lo ao seu projeto. Uma vez configurado, você pode começar a escrever casos de teste.
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
TEST(TestSuiteName, TestName) {
EXPECT_EQ(3, add(1, 2));
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Salve o código em um arquivo e compile-o com o compilador g++, vinculando a biblioteca do Google Test. Se tudo estiver configurado corretamente, a execução do executável resultante executará o teste, e se a função add
funcionar conforme esperado, você verá algo como:
[==========] Executando 1 teste de 1 suite de testes.
[----------] Configuração global do ambiente de teste.
[----------] 1 teste de TestSuiteName
[ EXECUTANDO] TestSuiteName.TestName
[ OK ] TestSuiteName.TestName (0 ms)
[----------] 1 teste de TestSuiteName (0 ms no total)
[==========] 1 teste de 1 suite de testes foi executado. (1 ms no total)
[ PASSOU ] 1 teste.
Usando Catch2
Outro framework de testes popular para C++ é o Catch2. Ele possui uma sintaxe mais simples e geralmente não requer vinculação com uma biblioteca (apenas cabeçalhos). Aqui está um exemplo de como escrever um teste simples com Catch2:
#define CATCH_CONFIG_MAIN // Isso indica ao Catch para fornecer um main() - faça isso apenas em um arquivo cpp
#include <catch.hpp>
int multiply(int a, int b) {
return a * b;
}
TEST_CASE( "Inteiros são multiplicados", "[multiply]" ) {
REQUIRE( multiply(2, 3) == 6 );
}
Ao compilar e executar este teste, o Catch2 fornece uma saída clara indicando se o teste passou ou falhou, junto com as informações necessárias para depurar falhas:
===============================================================================
Todos os testes passaram (1 assertiva em 1 caso de teste)
Estes exemplos mostram como a integração de frameworks de teste no seu fluxo de trabalho de desenvolvimento C++ pode melhorar significativamente a confiabilidade e a manutenção do seu código.