C++ Academy · leksjon

Sette opp GTest

Legg til og kjør rammeverket

Leksjon 1 av 413 trinn

Sette opp GTest er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hvorfor et testrammeverk?

Google Test (GTest) er et mye brukt rammeverk for enhetstesting i C++. Det tilbyr testregistrering, omfattende påstander, test-fixtures og tydelig rapportering, slik at De kan kontrollere koden automatisk.

Skaffe GTest

Vanlige måter å skaffe GTest på:

  • Systempakke (for eksempel libgtest-dev)
  • FetchContent i CMake, som henter fra GitHub
  • En inkludert submodul

FetchContent er det mest portable alternativet for nye prosjekter.

CMake med FetchContent

Et minimalt CMake-oppsett laster ned GoogleTest og lenker det inn.

# 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)

Deres første test

En test deklareres med TEST-makroen, som tar et navn på en testserie og et testnavn. Inne i testen bruker De påstander.

#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

Lenking mot GTest::gtest_main leverer main()-funksjonen som kjører alle registrerte tester. De trenger bare å skrive testtilfellene.

Skrive egen main

Hvis De trenger et egendefinert inngangspunkt, initialiserer De GTest selv.

#include <gtest/gtest.h>

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

Bygge og kjøre

Etter at CMake er konfigurert, bygger og kjører De programmet.

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

GTest skriver ut en farget oppsummering av beståtte og mislykkede tester.

Lese resultatet

Hver test rapporterer først [ RUN ], og deretter [ OK ] eller [ FAILED ]. En siste linje viser hvor mange tester som bestod. Feilrapporter inneholder filen, linjen og forventede kontra faktiske verdier.

Kjøre et utvalg

Bruk flagget --gtest_filter til å kjøre bare tester som samsvarer, for eksempel ./my_tests --gtest_filter=MathTest.*. Dette gjør målrettet feilsøking raskere.

Integrere med CTest

Kall enable_testing() og registrer binærfilen med gtest_discover_tests, slik at ctest kan kjøre testserien i CI.

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

En god arbeidsflyt

Skriv en test som mislykkes, implementer koden, og se den bestå. Hold testene raske og uavhengige, slik at De kan kjøre dem ved hver endring.

Hurtigsjekk

Husk hvordan main() blir levert.

Oppsummering

De har satt opp Google Test.

  • Skaff det via FetchContent, en pakke eller en submodul
  • TEST(Suite, Name) deklarerer en test
  • Lenk inn gtest_main for en automatisk main()
  • Bygg, kjør, filtrer og integrer med CTest
Gratis å komme i gang

Lær deg C++ med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Sette opp GTest» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «Sette opp GTest», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sette opp GTest»?

Legg til og kjør rammeverket Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C++ Academy?

Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Sette opp GTest»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?

Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sette opp GTest
  2. Påstander og matchere
  3. Testfiksturer og oppsett
  4. Mocking med GMock
← Tilbake til C++ Academy