Testování existujících aplikací C++ s Test Explorer
Před změnou existující aplikace doporučujeme zkontrolovat, jestli je dobře pokrytá jednotkovými testy.To zajistí, že provedené změny nezavedly neočekávané chyby.Pokud ještě aplikace neobsahuje jednotkové testy, je možné je přidat pomocí technik naznačených v tomto tématu.Toto téma popisuje, jak přidat jednotkové testy pro existující kód jazyka Visual C++ v systému Microsoft Visual Studio 2012, počínaje rozhodnutí o způsobu testování kódu, přes vytváření a psaní testů, až po samotné spuštění testů.
Rozhodnutí o způsobu testování kódu
Otevřete existující projekt C++ a rozhodněte, jak chcete jednotkové testy přidat.Můžete použít některé modelovací nástroje, které umožňují zobrazit závislosti v kódu a pomáhají pochopit interakci jednotlivých částí.Další informace naleznete v tématu Vizualizace a principy kódu.
Doporučujeme rozdělit změny na malé úlohy.Před každou malou změnou vytvořte jednotkové testy pro aspekty chování, které zůstávají stejné.Tyto testy musí proběhnout úspěšně i po zavedení změny.Pokud například chcete změnit funkci třídění tak, aby setřídila seznam osob podle příjmení namísto podle křestního jména, můžete napsat jednotkový test ověřující, že se všechna vstupní jména zobrazí i na výstupu.Po provedení změny můžete přidat nové jednotkové testy pro nové chování.
Pokud je to praktické, měla by většina jednotkových testů používat pouze funkce, které jsou exportovány.Pokud však měníte pouze malou část celé aplikace, pak může být vhodné použít i neexportované funkce.Můžete například chtít použít testy, které volávají vnitřní funkce, nebo testy, které nastavují a získávají hodnoty vnitřních proměnných.
Existuje několik způsobů jak otestovat produkční kód podle toho, zda poskytuje rozhraní, které je potřeba otestovat.Zvolte jeden z následujících způsobů:
- Jednotkové testy budou používat pouze funkce, které jsou exportovány z testovaného kódu:
Přidejte samostatný testovací projekt.V testovacím projektu přidejte odkaz na testovaný projekt.
Pokračujte podle postupu Vytvoření testovacího projektu odkazujícího na projekt s testovaným kódem.
Testovaný kód je vytvořen jako soubor s příponou .exe:
Přidejte samostatný testovací projekt.Připojte jej k výstupnímu objektovému souboru.Pokračujte podle postupu Vytvoření testovacího projektu odkazujícího na objektový soubor s testovaným kódem.
Jednotkové testy musí používat soukromé funkce a data a testovaný kód může být sestaven jako statická knihovna:
Změňte testovaný projekt tak, aby byl kompilován do souboru s příponou .lib.Přidejte samostatný testovací projekt s odkazem na testovaný projekt.Výhodou tohoto přístupu je dostupnost soukromých členů se zachováním samostatnosti testovacího projektu.Nemusí však být vhodný pro některé aplikace, které musí obsahovat dynamickou knihovnu (.dll).
Pokračujte podle postupu Změna testovaného kód na statickou knihovnu.
Jednotkové testy musí používat soukromé funkce a data a kód musí být sestaven jako dynamická knihovna (DLL):
Přidejte jednotkové testy přímo do projektu s testovaným kódem.Pokračujte podle postupu Přidání jednotkových testů do stejného projektu.
Vytváření testů
Změna testovaného kódu na statickou knihovnu
Pokud musí testy používat neexportované členy testovaného projektu a tento projekt je sestaven jako dynamická knihovna, zvažte jeho převod na statickou knihovnu.
V Průzkumníku řešení zvolte v místní nabídce testovaného projektu položku Vlastnosti.Otevře se okno s vlastnostmi projektu.
Zvolte položku Vlastnosti konfigurace, Obecné.
Nastavte položku Typ konfigurace na hodnotu Statická knihovna (.lib).
Pokračujte podle postupu Vytvoření testovacího projektu pro exportované funkce.
Odkazování na exportované funkce z testovacího projektu
Pokud testovaný projekt exportuje funkce, které mají být otestovány, je možné přidat do testovacího projektu odkaz na testovaný projekt.
Vytvoření testovacího projektu v jazyce C++.
- V nabídce Soubor zvolte položku Nový, Projekt, Visual C++,Test, Projekt jednotkových testů C++.
V Průzkumníku řešení zvolte v místní nabídce testovaného projektu položku Odkazy.Otevře se okno s vlastnostmi projektu.
Zvolte položku Společné vlastnosti, Rámec a odkazy a pak klikněte na tlačítko Přidat nový odkaz.
Zvolte položku Projekty a poté zvolte testovaný projekt.
Klikněte na tlačítko Přidat.
Ve vlastnostech testovacího projektu přidejte umístění testovaného projektu do položky Adresáře se zahrnutými soubory.
Zvolte položku Vlastnosti konfigurace, Adresáře VC++, Adresáře se zahrnutými soubory.
Zvolte položku Upravit a poté zadejte hlavní adresář testovaného projektu.
Pokračujte podle postupu Psaní jednotkových testů.
Připojení testů k souborům objektů nebo knihoven
Pokud testovaný kód neexportuje funkce, které je potřeba otestovat, můžete přidat jeho výstupní soubor s příponou .obj nebo .lib do závislostí testovacího projektu.
Vytvoření testovacího projektu v jazyce C++.
- V nabídce Soubor zvolte položku Nový, Projekt, Visual C++,Test, Projekt jednotkových testů C++.
V Průzkumníku řešení zvolte v místní nabídce testovacího projektu položku Vlastnosti.Otevře se okno s vlastnostmi projektu.
Zvolte položku Vlastnosti konfigurace, Linker, Vstup, Další závislosti.
Zvolte položku Upravit a přidejte jména souborů s příponou .obj nebo .lib, které chcete navázat.Nepoužívejte úplné cesty k souborům.
Zvolte položku Vlastnosti konfigurace, Linker, Obecné, Další adresáře knihoven.
Zvolte položku Upravit a přidejte cestu k adresáři se soubory s příponou .obj nebo .lib.Cesta je obvykle ve složce sestavení testovaného projektu.
Zvolte položku Vlastnosti konfigurace, Adresáře VC++, Adresáře se zahrnutými soubory.
Zvolte položku Upravit a poté zadejte hlavní adresář testovaného projektu.
Pokračujte podle postupu Psaní jednotkových testů.
Přidání jednotkových testů do stejného projektu
Upravte vlastnosti projektu s produkčním kódem tak, aby zahrnovaly hlavičkové soubory a soubory knihoven, které jsou pro testování vyžadovány.
V Průzkumníku řešení zvolte v místní nabídce testovaného projektu položku Vlastnosti.Otevře se okno s vlastnostmi projektu.
Zvolte položku Vlastnosti konfigurace, Adresáře VC++.
Upravte Adresáře se zahrnutými soubory a Adresáře knihoven:
Adresáře se zahrnutými soubory
$(VCInstallDir)UnitTest\include;$(IncludePath)
Adresáře knihoven
$(VCInstallDir)UnitTest\lib;$(LibraryPath)
Přidání souboru jednotkového testu v jazyce C++:
- V Průzkumníku řešení zvolte v místní nabídce projektu položku Přidat, Nová položka a tam zvolte položku Jednotkový test C++.
Pokračujte podle postupu Psaní jednotkových testů.
Psaní jednotkových testů
Do každého souboru s kódem jednotkového testu přidejte příkaz #include na hlavičkové soubory testovaného projektu.
Přidejte testovací třídy a metody do souborů s kódem jednotkového testu.Příklad:
#include "stdafx.h" #include "CppUnitTest.h" #include "MyProjectUnderTest.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace MyTest { TEST_CLASS(MyTests) { public: TEST_METHOD(MyTestMethod) { Assert::AreEqual(MyProject::Multiply(2,3), 6); } }; }
Další informace naleznete v tématu Testování nativního kódu aplikace Test Explorer.
Spuštění testů
V nabídce Zobrazit zvolte položku Ostatní okna, Průzkumník testů.
V Průzkumníku testů zvolte položku Spustit všechny.
Další informace naleznete v tématu Rychlý začátek: Vývoj řízený testováním s použitím Průzkumníka testů.