Configurare GTest
Aggiungere ed eseguire il framework
Configurare GTest è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
Perché un framework di test?
Google Test (GTest) è un framework C++ per unit test ampiamente utilizzato. Fornisce la registrazione dei test, asserzioni complete, fixture e report chiari, così può verificare automaticamente il codice.
Ottenere GTest
Modi comuni per ottenere GTest:
- Pacchetto di sistema (ad esempio
libgtest-dev) - FetchContent in CMake, scaricandolo da GitHub
- Un submodule incluso nel progetto
FetchContent è l'opzione più portabile per i nuovi progetti.
CMake con FetchContent
Una configurazione CMake minima scarica GoogleTest e lo collega.
# 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)Il primo test
Un test viene dichiarato con la macro TEST, che accetta il nome della test suite e il nome del test. Al suo interno si utilizzano le asserzioni.
#include <gtest/gtest.h>
int add(int a, int b) { return a + b; }
TEST(MathTest, AddsPositive) {
EXPECT_EQ(add(2, 3), 5);
}Non serve main()
Il collegamento con GTest::gtest_main fornisce il main() che esegue tutti i test registrati. Lei deve scrivere solo i casi di test.
Scrivere il proprio main
Se serve un punto di ingresso personalizzato, inizializzi GTest autonomamente.
#include <gtest/gtest.h>
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}Compilare ed eseguire
Dopo aver configurato CMake, compili ed esegua.
cmake -S . -B buildcmake --build build./build/my_tests
GTest stampa un riepilogo colorato dei test superati e falliti.
Leggere l'output
Ogni test mostra prima [ RUN ], poi [ OK ] o [ FAILED ]. Una riga finale indica quanti test sono stati superati. I fallimenti includono file, riga e valori atteso ed effettivo.
Eseguire un sottoinsieme
Utilizzi il flag --gtest_filter per eseguire solo i test corrispondenti, ad esempio ./my_tests --gtest_filter=MathTest.*. Questo accelera il debugging mirato.
Integrare con CTest
Chiami enable_testing() e registri il binario con gtest_discover_tests, così ctest può eseguire la suite in CI.
# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)Un flusso di lavoro efficace
Scriva un test che fallisce, implementi il codice e osservi il test superarsi. Mantenga i test veloci e indipendenti, così potrà eseguirli a ogni modifica.
Verifica rapida
Richiami come viene fornito main().
Riepilogo
Ha configurato Google Test.
- Lo ottenga tramite FetchContent, pacchetto o submodule
TEST(Suite, Name)dichiara un test- Colleghi
gtest_mainper ottenere automaticamentemain() - Compili, esegua, filtri e integri con CTest
Domande Frequenti
La lezione «Configurare GTest» è gratuita?
Sì — il testo completo di «Configurare GTest» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Configurare GTest»?
Aggiungere ed eseguire il framework Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Configurare GTest»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Configurare GTest
- Asserzioni e matcher
- Fixture e configurazione
- Mocking con GMock