C++:
Skrive tester
Hvordan:
Bruke Google Test Framework
En av de mest populære tredjepartsbibliotekene for å skrive tester i C++ er Google Test. Først må du installere Google Test og lenke den med prosjektet ditt. Når alt er satt opp, kan du begynne å skrive testtilfeller.
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
TEST(TestSuiteNavn, TestNavn) {
EXPECT_EQ(3, add(1, 2));
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Lagre koden i en fil, og kompiler den med g++-kompilatoren, lenk Google Test-biblioteket. Hvis alt er satt opp riktig, vil kjøring av det resulterende eksekverbare programmet kjøre testen, og hvis add
-funksjonen fungerer som forventet, vil du se noe som:
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from TestSuiteNavn
[ RUN ] TestSuiteNavn.TestNavn
[ OK ] TestSuiteNavn.TestNavn (0 ms)
[----------] 1 test from TestSuiteNavn (0 ms total)
[==========] 1 test from 1 test suite ran. (1 ms total)
[ PASSED ] 1 test.
Bruke Catch2
Et annet populært testrammeverk for C++ er Catch2. Det har en enklere syntaks og krever vanligvis ikke lenking mot et bibliotek (kun header). Her er et eksempel på hvordan du skriver en enkel test med Catch2:
#define CATCH_CONFIG_MAIN // Dette forteller Catch å tilby en main() - gjør dette kun i én cpp-fil
#include <catch.hpp>
int multiply(int a, int b) {
return a * b;
}
TEST_CASE( "Heltall multipliseres", "[multiply]" ) {
REQUIRE( multiply(2, 3) == 6 );
}
Når du kompilerer og kjører denne testen, gir Catch2 tydelig utdata som indikerer om testen ble bestått eller ikke, sammen med all informasjon som trengs for å feilsøke feil:
===============================================================================
All tests passed (1 assertion in 1 test case)
Disse eksemplene viser hvordan integrering av testrammeverk i C++-utviklingsarbeidsflyten din kan forbedre påliteligheten og vedlikeholdbarheten av koden betydelig.