Použití architektury Microsoft Unit Testing Framework pro C++ v Visual Studio
Microsoft Unit Testing Framework pro C++ je ve výchozím nastavení součástí vývoj desktopových aplikací v jazyce c++ .
Zápis testů jednotek do samostatného projektu
Obvykle spouštíte testovací kód ve vlastním projektu ve stejném řešení jako kód, který chcete testovat. Chcete-li nastavit a nakonfigurovat nový projekt testů, přečtěte si téma zápis testů jednotek pro C/C++.
Zápis testů jednotek ve stejném projektu
V některých případech, například při testování neexportovaných funkcí v knihovně DLL, může být nutné vytvořit testy ve stejném projektu jako program, který testujete. Zápis testů jednotek do stejného projektu:
Upravte vlastnosti projektu tak, aby obsahovaly hlavičky a soubory knihoven, které jsou požadovány pro testování částí.
V Průzkumník řešení v místní nabídce projektu, který testujete, vyberte možnost vlastnosti. Otevře se okno Vlastnosti projektu.
V dialogovém okně stránky vlastností vyberte možnost Vlastnosti konfigurace > adresáře VC + +.
Vyberte šipku dolů v následujících řádcích a zvolte <Edit> . Přidejte tyto cesty:
Adresář Vlastnost Zahrnout adresáře $ (VCInstallDir) Auxiliary\VS\UnitTest\include Adresáře knihoven $ (VCInstallDir) Auxiliary\VS\UnitTest\lib
Přidat soubor testu jednotek C++:
V Průzkumník řešení klikněte pravým tlačítkem myši na uzel projektu a vyberte možnost Přidat > novou položku.
V dialogovém okně Přidat novou položku vyberte soubor C++ (. cpp), přiřaďte mu odpovídající název a pak zvolte Přidat.
Propojení testů s objekty nebo soubory knihovny
Pokud testovaný kód neexportuje funkce, které chcete otestovat, můžete přidat výstupní soubor . obj nebo . lib do závislostí testovacího projektu. Upravte vlastnosti projektu testu tak, aby zahrnovaly hlavičky a soubory knihoven nebo objektů, které jsou požadovány pro testování částí.
V Průzkumník řešení v místní nabídce testovacího projektu vyberte možnost vlastnosti. Otevře se okno Vlastnosti projektu.
Vyberte stránku Vlastnosti konfigurace > vstup linkeru > a potom vyberte Další závislosti.
Vyberte Upravit a přidejte názvy souborů . obj nebo . lib . Nepoužívejte názvy úplných cest.
Vyberte stránku Vlastnosti konfigurace > Obecné linkeru > a pak vyberte Další adresáře knihoven.
Vyberte Upravit a přidejte cestu k adresáři souborů . obj nebo . lib . Cesta je obvykle ve složce sestavení testovaného projektu.
Vyberte stránku Vlastnosti konfigurace > adresáře VC + + a pak vyberte Zahrnout adresáře.
Zvolte Upravit a pak přidejte adresář záhlaví testovaného projektu.
Zápis testů
Libovolný soubor . cpp s testovacími třídami musí zahrnovat "CppUnitTest. h" a obsahovat příkaz using pro using namespace Microsoft::VisualStudio::CppUnitTestFramework . Testovací projekt je už pro vás nakonfigurovaný. Zahrnuje také definici oboru názvů a TEST_CLASS s TEST_METHOD, které vám pomohou začít. Můžete upravit název oboru názvů a názvy v závorkách v makrech třídy a metody.
Testovací rozhraní definuje speciální makra pro inicializaci testovacích modulů, tříd a metod a pro vyčištění prostředků po dokončení testů. Tato makra generují kód, který se má provést před prvním otevřením třídy nebo metody, a po spuštění posledního testu. Další informace naleznete v tématu inicializace a vyčištění.
Použijte statické metody ve třídě Assert k definování testovacích podmínek. K zápisu zpráv do okno výstup použijte třídu protokolovacího nástroje. Přidání atributů do testovacích metod
Spuštění testů
v nabídce test vyberte možnost Windows > průzkumník testů.
Pokud nejsou všechny testy v okně viditelné, sestavte projekt testu kliknutím pravým tlačítkem myši na jeho uzel v Průzkumník řešení a výběrem možnosti sestavit nebo znovu sestavit.
V Průzkumníku testů zvolte možnost Spustit vše nebo vyberte konkrétní testy, které chcete spustit. Klikněte pravým tlačítkem na test pro další možnosti, včetně spuštění v režimu ladění se zapnutými zarážkami.
V okno výstup v rozevíracím seznamu vyberte testy , abyste zobrazili zprávy zapsané
Loggertřídou:
Definovat vlastnosti pro povolení seskupení
Můžete definovat vlastnosti v testovacích metodách, které umožňují kategorizaci a seskupení testů v Průzkumníku testů. Pro definování vlastností použijte TEST_METHOD_ATTRIBUTE makro. Například pro definování vlastnosti s názvem TEST_MY_TRAIT :
#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)
Použití definovaného vlastností při testování částí:
BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
TEST_OWNER(L"OwnerName")
TEST_PRIORITY(1)
TEST_MY_TRAIT(L"thisTraitValue")
END_TEST_METHOD_ATTRIBUTE()
TEST_METHOD(Method1)
{
Logger::WriteMessage("In Method1");
Assert::AreEqual(0, 0);
}
Makra atributů vlastností C++
Následující předem definované vlastnosti se nacházejí v CppUnitTest.h . Další informace najdete v referenčních informacích k rozhraní Microsoft Unit Testing Framework pro C++ API.
| Podokně | Popis |
|---|---|
TEST_METHOD_ATTRIBUTE(attributeName, attributeValue) |
Pro definování vlastností použijte makro TEST_METHOD_ATTRIBUTE. |
TEST_OWNER(ownerAlias) |
Použijte předdefinovaný vlastnický vlastník a určete vlastníka testovací metody. |
TEST_PRIORITY(priority) |
Pomocí předdefinované vlastnosti priority můžete přiřadit relativní priority k testovacím metodám. |