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:

  1. Upravte vlastnosti projektu tak, aby zahrnovaly hlavičky a soubory knihovny potřebné pro testování jednotek.

    1. V Průzkumník řešení v místní nabídce projektu, který testujete, zvolte Vlastnosti. Otevře se okno vlastností projektu.

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

    3. 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
  2. Přidejte soubor C++ Unit Test:

    1. Klikněte pravým tlačítkem na uzel projektu v Průzkumník řešení a zvolte Přidat>novou položku.

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

  1. V Průzkumník řešení v místní nabídce testovacího projektu zvolte Vlastnosti. Otevře se okno vlastností projektu.

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

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

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

  1. V nabídce Test zvolte Průzkumníka testů Systému Windows>.

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

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

  4. V okně výstupu zvolte Testy v rozevíracím seznamu a zobrazte zprávy napsané Logger třídou:

    C++ Output Window showing test messages

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.