C++ Academy · Oppitunti

GTestin käyttöönotto

Lisää ja suorita testauskehys

Oppitunti 1/413 vaihetta

GTestin käyttöönotto on ilmainen C++ Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu C++ Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C++ Academy-kurssilla on yhteensä 4 oppituntia.

Miksi testikehys?

Google Test (GTest) on laajasti käytetty C++:n yksikkötestauskehys. Se tarjoaa testien rekisteröinnin, monipuoliset assertiot, fixturet ja selkeät raportit, joiden avulla voitte tarkistaa koodin toiminnan automaattisesti.

GTestin hankkiminen

Yleisiä tapoja hankkia GTest:

  • Järjestelmäpaketti, esimerkiksi libgtest-dev
  • CMake-tiedoston FetchContent, joka hakee paketin GitHubista
  • Projektiin sisällytetty alaimoduuli

FetchContent on uusille projekteille siirrettävin vaihtoehto.

CMake ja FetchContent

Minimaalinen CMake-määritys lataa GoogleTestin ja linkittää sen projektiin.

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

Ensimmäinen testinne

Testi määritellään TEST-makrolla, joka saa argumenteikseen testisarjan nimen ja testin nimen. Käyttäkää sen sisällä assertioita.

#include <gtest/gtest.h>

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

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

main()-funktiota ei tarvita

Linkittäminen kohteeseen GTest::gtest_main tarjoaa main()-funktion, joka suorittaa kaikki rekisteröidyt testit. Teidän tarvitsee kirjoittaa vain testitapaukset.

Oman main-funktion kirjoittaminen

Jos tarvitsette mukautetun aloituskohdan, alustakaa GTest itse.

#include <gtest/gtest.h>

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

Koonti ja suoritus

Kun CMake on määritetty, kootkaa ja suorittakaa ohjelma.

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

GTest tulostaa värillisen yhteenvedon läpäistyistä ja epäonnistuneista testeistä.

Tulosteen lukeminen

Kukin testi raportoi ensin [ RUN ] ja sen jälkeen joko [ OK ] tai [ FAILED ]. Viimeisellä rivillä ilmoitetaan läpäistyjen testien määrä. Virheraporteissa näkyvät tiedosto, rivi sekä odotetut ja todelliset arvot.

Osajoukon suorittaminen

Käyttäkää --gtest_filter-lippua suorittaaksenne vain vastaavat testit, esimerkiksi ./my_tests --gtest_filter=MathTest.*. Tämä nopeuttaa kohdennettua virheenkorjausta.

CTest-integraatio

Kutsukaa enable_testing()-funktiota ja rekisteröikää binääri gtest_discover_tests-funktiolla, jotta ctest voi suorittaa testisarjan jatkuvan integraation ympäristössä.

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

Toimiva työskentelytapa

Kirjoittakaa epäonnistuva testi, toteuttakaa koodi ja seuratkaa, kun testi menee läpi. Pitäkää testit nopeina ja toisistaan riippumattomina, jotta voitte suorittaa ne jokaisen muutoksen yhteydessä.

Pikatarkistus

Palauttakaa mieleenne, miten main()-funktio tarjotaan.

Kertaus

Opitte määrittämään Google Testin.

  • Hankkikaa se FetchContentilla, pakettina tai alaimoduulina
  • TEST(Suite, Name) määrittelee testin
  • Linkittäkää gtest_main, jos haluatte automaattisen main()-funktion
  • Kootkaa, suorittakaa ja suodattakaa testejä sekä liittäkää ne CTestiin
Aloita maksutta

Opi C++ tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
51
Oppitunnit
203

Usein kysytyt kysymykset

Onko oppitunti ”GTestin käyttöönotto” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa C++ Academy-oppimispolun 3 oppituntia, myös oppitunnin “GTestin käyttöönotto”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. C++ Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”GTestin käyttöönotto”?

Lisää ja suorita testauskehys Harjoittelet C++ Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C++ Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C++ Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”GTestin käyttöönotto”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä C++ Academy-oppitunnilla?

Kyllä. Jokainen C++ Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. GTestin käyttöönotto
  2. Väitteet ja täsmäyttimet
  3. Testivakiot ja alustus
  4. Mockaus GMockilla
← Takaisin: C++ Academy