Použití rozhraní Microsoft Unit Testing Framework pro C++ v sadě Visual Studio
Rozhraní Microsoft Unit Testing Framework pro C++ je ve výchozím nastavení součástí úlohy Vývoj desktopových aplikací pomocí jazyka C++ .
Zápis testů jednotek v samostatném projektu
Testovací kód obvykle spustíte ve vlastním projektu ve stejném řešení jako kód, který chcete testovat. Pokud chcete nastavit a nakonfigurovat nový testovací projekt, přečtěte si téma Psaní 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. Postup zápisu testů jednotek ve stejném projektu:
Upravte vlastnosti projektu tak, aby zahrnovaly hlavičky a soubory knihovny potřebné pro testování jednotek.
V Průzkumník řešení v místní nabídce projektu, který testujete, zvolte Vlastnosti. Otevře se okno vlastností projektu.
V dialogovém okně Stránky vlastností vyberte adresáře VC++ Vlastnosti>konfigurace.
Vyberte šipku dolů v následujících řádcích a zvolte <Upravit>. Přidejte tyto cesty:
Directory Vlastnost Zahrnout adresáře $(VCInstallDir)Pomocné\VS\UnitTest\include Adresáře knihoven $(VCInstallDir)Pomocný\VS\UnitTest\lib
Přidejte soubor C++ Unit Test:
Klikněte pravým tlačítkem na uzel projektu v Průzkumník řešení a zvolte Přidat>novou položku.
V dialogovém okně Přidat novou položku vyberte soubor C++ (.cpp), zadejte odpovídající název a pak zvolte Přidat.
Propojení testů se soubory objektů nebo knihoven
Pokud kód v testu neexportuje funkce, které chcete testovat, můžete do závislostí testovacího projektu přidat výstupní soubor .obj nebo .lib . Upravte vlastnosti testovacího projektu tak, aby zahrnovaly hlavičky a soubory knihovny nebo objektů, které jsou požadovány pro testování jednotek.
V Průzkumník řešení v místní nabídce testovacího projektu zvolte Vlastnosti. Otevře se okno vlastností projektu.
Vyberte vstupní stránku Vlastností konfigurace>linkeru>a pak vyberte Další závislosti.
Zvolte Upravit a přidejte názvy souborů .obj nebo .lib . Nepoužívejte úplné názvy cest.
Vyberte stránku Obecné vlastnosti>konfigurace linkeru>a pak vyberte Další adresáře knihovny.
Zvolte Upravit a přidejte cestu k adresáři souborů .obj nebo .lib . Cesta se obvykle nachází ve složce sestavení projektu v rámci testu.
Vyberte stránku Konfigurace vlastností>adresářů VC++ a pak vyberte Zahrnout adresáře.
Zvolte Upravit a pak přidejte adresář záhlaví projektu v rámci testu.
Zápis testů
Jakýkoli soubor .cpp s testovacími třídami musí obsahovat "CppUnitTest.h" a mít 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, abyste mohli začít. Název oboru názvů a názvy v závorkách můžete upravit v makrech třídy a metody.
Testovací architektura definuje speciální makra pro inicializaci testovacích modulů, tříd a metod a vyčištění prostředků po dokončení testů. Tato makra generují kód, který se spustí před prvním přístupem ke třídě nebo metodě a po spuštění posledního testu. Další informace naleznete v tématu Inicializace a vyčištění.
Pomocí statických metod ve třídě Assert definujte testovací podmínky. Pomocí třídy Logger zapisovat zprávy do výstupního okna. Přidání atributů do testovacích metod
Spuštění testů
V nabídce Test zvolte Průzkumníka testů Systému Windows>.
Pokud nejsou všechny vaše testy viditelné v okně, sestavte testovací projekt tak, že v Průzkumník řešení kliknete pravým tlačítkem na jeho uzel a zvolíte Sestavení nebo znovu sestavit.
V Průzkumníku testů zvolte Spustit vše nebo vyberte konkrétní testy, které chcete spustit. Klikněte pravým tlačítkem myši na test pro další možnosti, včetně spuštění v režimu ladění s povolenými zarážky.
V okně výstupu zvolte Testy v rozevíracím seznamu a zobrazte zprávy napsané
Logger
třídou:
Definování vlastností pro povolení seskupování
U testovacích metod můžete definovat vlastnosti, které umožňují kategorizovat a seskupovat testy v Průzkumníku testů. K definování vlastnosti použijte TEST_METHOD_ATTRIBUTE
makro. Chcete-li například definovat vlastnost s názvem TEST_MY_TRAIT
:
#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)
Použití definované vlastnosti v testech jednotek:
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ředdefinované vlastnosti jsou nalezeny v CppUnitTest.h
. Další informace naleznete v tématu Rozhraní Microsoft Unit Testing Framework pro rozhraní API jazyka C++.
Makro | Popis |
---|---|
TEST_METHOD_ATTRIBUTE(attributeName, attributeValue) |
K definování vlastnosti použijte makro TEST_METHOD_ATTRIBUTE. |
TEST_OWNER(ownerAlias) |
Pomocí předdefinované vlastnosti Owner určete vlastníka testovací metody. |
TEST_PRIORITY(priority) |
Pomocí předdefinované vlastnosti Priority přiřaďte k testovacím metodám relativní priority. |