Udostępnij za pośrednictwem


Pisanie testów jednostkowych dla bibliotek DLL języka C++ w programie Visual Studio

Istnieje kilka sposobów testowania kodu DLL, w zależności od tego, czy eksportuje funkcje, które chcesz przetestować. Wybierz jeden z następujących sposobów:

Testy jednostkowe wywołają tylko funkcje wyeksportowane z biblioteki DLL: Dodaj oddzielny projekt testowy zgodnie z opisem w artykule Pisanie testów jednostkowych dla języka C/C++. W projekcie testowym dodaj odwołanie do projektu DLL.

Przejdź do procedury Aby odwołać się do wyeksportowanych funkcji z projektu DLL.

Biblioteka DLL jest kompilowana jako plik exe: Dodaj oddzielny projekt testowy. Połącz go z plikiem obiektu wyjściowego.

Przejdź do procedury Aby połączyć testy z plikami obiektów lub bibliotek.

Testy jednostkowe wywołają funkcje inne niż składowe, które nie są eksportowane z biblioteki DLL, a biblioteka DLL może zostać skompilowana jako biblioteka statyczna: Zmień projekt DLL, aby został skompilowany do pliku .lib . Dodaj oddzielny projekt testowy, który odwołuje się do projektu testowego.

Takie podejście ma korzyść z umożliwienia testom używania nie wyeksportowanych elementów członkowskich, ale nadal utrzymuje testy w osobnym projekcie.

Przejdź do procedury Aby zmienić bibliotekę DLL na bibliotekę statyczną.

Testy jednostkowe muszą wywoływać funkcje inne niż składowe, które nie są eksportowane, a kod musi zostać skompilowany jako dynamiczna biblioteka linków (DLL): dodaj testy jednostkowe w tym samym projekcie co kod produktu.

Przejdź do procedury Aby dodać testy jednostkowe w tym samym projekcie.

Tworzenie testów

  • Jeśli testy muszą używać elementów członkowskich, które nie są eksportowane przez projekt DLL, a projekt testowany jest kompilowany jako biblioteka dynamiczna, rozważ przekonwertowanie go na bibliotekę statyczną.

    1. W Eksplorator rozwiązań w menu skrótów projektu w ramach testu wybierz pozycję Właściwości. Zostanie otwarte okno Właściwości projektu.

    2. Wybierz pozycję Właściwości>konfiguracji Ogólne.

    3. Ustaw wartość Typ konfiguracji na wartość Biblioteka statyczna (.lib).

    Kontynuuj pracę z procedurą Aby połączyć testy z plikami obiektów lub biblioteki.

Aby odwołać się do wyeksportowanych funkcji DLL z projektu testowego

  • Jeśli projekt DLL eksportuje funkcje, które chcesz przetestować, możesz dodać odwołanie do projektu kodu z projektu testowego.

    1. Utwórz natywny projekt testów jednostkowych.

      1. W menu Plik wybierz pozycję Nowy>projekt. W oknie dialogowym Dodawanie nowego projektu ustaw wartość Język na C++ i wpisz "test" w polu wyszukiwania. Następnie wybierz projekt natywnego testu jednostkowego.
    2. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt testowy, a następnie wybierz polecenie Dodaj>odwołanie.

    3. Wybierz pozycję Projekty, a następnie projekt do przetestowania.

      Wybierz przycisk Dodaj.

    4. We właściwościach projektu testowego dodaj lokalizację projektu testowego do katalogów dołączania.

      Wybierz pozycję Właściwości>konfiguracji Katalogi dołączania> VC++.

      Wybierz pozycję Edytuj, a następnie dodaj katalog nagłówkowy projektu w ramach testu.

    Przejdź do pozycji Pisanie testów jednostkowych.

Aby połączyć testy z plikami obiektów lub bibliotek

  • Jeśli biblioteka DLL nie eksportuje funkcji, które chcesz przetestować, możesz dodać plik wyjściowy obj lub lib do zależności projektu testowego.

    1. Utwórz natywny projekt testów jednostkowych.

      1. W menu Plik wybierz pozycję Nowy>projekt. W oknie dialogowym Dodawanie nowego projektu ustaw wartość Język na C++ i wpisz "test" w polu wyszukiwania. Następnie wybierz projekt natywnego testu jednostkowego.
    2. W Eksplorator rozwiązań w menu skrótów projektu testowego wybierz pozycję Właściwości.

    3. Wybierz pozycję Właściwości>konfiguracji, aby>>wprowadzić dodatkowe zależności.

      Wybierz pozycję Edytuj i dodaj nazwy plików .obj lub .lib . Nie używaj pełnych nazw ścieżek.

    4. Wybierz pozycję Właściwości>konfiguracji Konsolidator>ogólne>dodatkowe katalogi bibliotek.

      Wybierz pozycję Edytuj i dodaj ścieżkę katalogu plików .obj lub .lib . Ścieżka jest zwykle w folderze kompilacji projektu testowego.

    5. Wybierz pozycję Właściwości>konfiguracji Katalogi dołączania> VC++.

      Wybierz pozycję Edytuj, a następnie dodaj katalog nagłówkowy projektu w ramach testu.

    Przejdź do pozycji Pisanie testów jednostkowych.

Aby dodać testy jednostkowe w tym samym projekcie

  1. Zmodyfikuj właściwości projektu kodu produktu, aby uwzględnić nagłówki i pliki biblioteki wymagane do testowania jednostkowego.

    1. W Eksplorator rozwiązań w menu skrótów projektu w ramach testu wybierz pozycję Właściwości. Zostanie otwarte okno Właściwości projektu.

    2. Wybierz pozycję Właściwości>konfiguracji Katalogi VC++.

    3. Edytuj katalogi dołączania i biblioteki:

      Katalog Właściwości
      Dołączanie katalogów $(VCInstallDir)Auxiliary\VS\UnitTest\include
      Katalogi bibliotek $(VCInstallDir)Auxiliary\VS\UnitTest\lib
  2. Dodaj plik testu jednostkowego języka C++:

    1. Kliknij prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i wybierz polecenie Dodaj>nowy element.

    2. W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Plik C++ (cpp), nadaj mu odpowiednią nazwę, a następnie wybierz pozycję Dodaj.

    Przejdź do pozycji Pisanie testów jednostkowych.

Pisanie testów jednostkowych

  1. W każdym pliku kodu testu jednostkowego dodaj instrukcję #include dla nagłówków projektu w ramach testu.

  2. Dodaj klasy i metody testów do plików kodu testu jednostkowego. Na przykład:

    #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);
          }
      };
    }
    

Uruchamianie testów

  1. W menu Test wybierz pozycję Eksplorator testów systemu Windows>.

  2. Jeśli nie wszystkie testy są widoczne w oknie, skompiluj projekt testowy: kliknij prawym przyciskiem myszy swój węzeł w Eksplorator rozwiązań i wybierz polecenie Kompiluj lub ponownie.

  3. W Eksploratorze testów wybierz pozycję Uruchom wszystko lub wybierz określone testy, które chcesz uruchomić. Kliknij prawym przyciskiem myszy test dla innych opcji, na przykład, aby uruchomić go w trybie debugowania z włączonymi punktami przerwania.