C++ Academy · Lektion

Opsætning af GTest

Tilføj og kør frameworket

Lektion 1 af 413 trin

Opsætning af GTest er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvorfor et testrammeværk?

Google Test (GTest) er et meget udbredt C++-rammeværk til enhedstest. Det indeholder testregistrering, detaljerede kontroller, fixtures og tydelig rapportering, så du kan verificere kode automatisk.

Sådan får du GTest

Almindelige måder at hente GTest på:

  • Systempakke (f.eks. libgtest-dev)
  • FetchContent i CMake, som henter fra GitHub
  • Et submodul, der er inkluderet i projektet

FetchContent er den mest portable løsning til nye projekter.

CMake med FetchContent

En minimal CMake-opsætning henter GoogleTest og sammenkæder det.

# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
  googletest
  URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
)
FetchContent_MakeAvailable(googletest)

add_executable(my_tests test_main.cpp)
target_link_libraries(my_tests GTest::gtest_main)

Din første test

En test erklæres med TEST-makroen, som tager et testsuitenavn og et testnavn. Inde i den bruger du kontroller.

#include <gtest/gtest.h>

int add(int a, int b) { return a + b; }

TEST(MathTest, AddsPositive) {
    EXPECT_EQ(add(2, 3), 5);
}

Ingen main() nødvendig

Linkning mod GTest::gtest_main leverer den main(), der kører alle registrerede tests. Du skriver kun testtilfældene.

Skriv din egen main

Hvis du har brug for et brugerdefineret indgangspunkt, initialiserer du selv GTest.

#include <gtest/gtest.h>

int main(int argc, char** argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

Bygning og kørsel

Efter konfiguration af CMake bygger og kører du programmet.

  • cmake -S . -B build
  • cmake --build build
  • ./build/my_tests

GTest udskriver en farvet opsummering af beståede og fejlede tests.

Læsning af outputtet

Hver test rapporterer [ RUN ] og derefter [ OK ] eller [ FAILED ]. En afsluttende linje viser, hvor mange tests der bestod. Fejl indeholder filen, linjen og de forventede kontra de faktiske værdier.

Kør et udsnit

Brug flaget --gtest_filter til kun at køre tests, der matcher, f.eks. ./my_tests --gtest_filter=MathTest.*. Det gør målrettet fejlfinding hurtigere.

Integrering med CTest

Kald enable_testing(), og registrer den binære fil med gtest_discover_tests, så ctest kan køre din testsuite i CI.

# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)

En sund arbejdsgang

Skriv en test, der fejler, implementer koden, og se den bestå. Hold tests hurtige og uafhængige, så du kan køre dem ved enhver ændring.

Hurtigt tjek

Husk, hvordan main() leveres.

Opsummering

Du har sat Google Test op.

  • Hent det via FetchContent, en pakke eller et submodul
  • TEST(Suite, Name) erklærer en test
  • Link gtest_main for at få en automatisk main()
  • Byg, kør, filtrer, og integrer med CTest
Gratis at komme i gang

Lær C++ med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
51
Lektioner
203

Ofte stillede spørgsmål

Er lektionen “Opsætning af GTest” gratis?

Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Opsætning af GTest”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Opsætning af GTest”?

Tilføj og kør frameworket Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C++ Academy?

Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Opsætning af GTest”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C++ Academy-lektion?

Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsætning af GTest
  2. Assertions og matchers
  3. Fixtures og opsætning
  4. Mocking med GMock
← Tilbage til C++ Academy