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:

  1. Upravte vlastnosti projektu tak, aby obsahovaly hlavičky a soubory knihoven, které jsou požadovány pro testování částí.

    1. V Průzkumník řešení v místní nabídce projektu, který testujete, vyberte možnost vlastnosti. Otevře se okno Vlastnosti projektu.

    2. V dialogovém okně stránky vlastností vyberte možnost Vlastnosti konfigurace > adresáře VC + +.

    3. 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
  2. Přidat soubor testu jednotek C++:

    1. 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.

    2. 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.

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í.

  1. V Průzkumník řešení v místní nabídce testovacího projektu vyberte možnost vlastnosti. Otevře se okno Vlastnosti projektu.

  2. 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.

  3. 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.

  4. 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ů

  1. v nabídce test vyberte možnost Windows > průzkumník testů.

  2. 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.

  3. 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.

  4. V okno výstup v rozevíracím seznamu vyberte testy , abyste zobrazili zprávy zapsané Logger třídou:

    C++ okno Výstup zobrazení zkušebních zpráv

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.

Viz také