Visual Studio'da C++ için Microsoft Unit Testing Framework kullanma

C++ için Microsoft Unit Testing Framework, C++ ile Masaüstü Geliştirme iş yüküne varsayılan olarak eklenir.

Ayrı bir projeye birim testleri yazmak için

Genellikle test kodunuzu test etmek istediğiniz kodla aynı çözümde kendi projesinde çalıştırırsınız. Yeni bir test projesi ayarlamak ve yapılandırmak için bkz . C/C++ için birim testleri yazma.

Aynı projede birim testleri yazmak için

Bazı durumlarda, örneğin bir DLL'de dışarı aktarılmayan işlevleri test ederken, testleri test ettiğiniz programla aynı projede oluşturmanız gerekebilir. Aynı projede birim testleri yazmak için:

  1. Birim testi için gereken üst bilgileri ve kitaplık dosyalarını içerecek şekilde proje özelliklerini değiştirin.

    1. Çözüm Gezgini'da, test ettiğiniz projenin kısayol menüsünde Özellikler'i seçin. Proje özellikleri penceresi açılır.

    2. Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri VC++ Dizinleri'ni> seçin.

    3. Aşağıdaki satırlarda aşağı oku seçin ve Düzenle'yi> seçin<. Şu yolları ekleyin:

      Dizin Özellik
      Dizinleri Dahil Et $(VCInstallDir)Auxiliary\VS\UnitTest\include
      Kitaplık Dizinleri $(VCInstallDir)Auxiliary\VS\UnitTest\lib
  2. C++ Birim Testi dosyası ekleyin:

    1. Çözüm Gezgini'da proje düğümüne sağ tıklayın ve Yeni Öğe Ekle'yi> seçin.

    2. Yeni Öğe Ekle iletişim kutusunda C++ Dosyası (.cpp) öğesini seçin, uygun bir ad verin ve ekle'yi seçin.

Testleri nesne veya kitaplık dosyalarına bağlamak için

Test altındaki kod test etmek istediğiniz işlevleri dışarı aktarmıyorsa çıkış .obj veya .lib dosyasını test projesinin bağımlılıklarına ekleyebilirsiniz. Test projesinin özelliklerini, birim testi için gereken üst bilgileri ve kitaplık veya nesne dosyalarını içerecek şekilde değiştirin.

  1. Çözüm Gezgini'da, test projesinin kısayol menüsünde Özellikler'i seçin. Proje özellikleri penceresi açılır.

  2. Yapılandırma Özellikleri>Bağlayıcı>Girişi sayfasını ve ardından Ek Bağımlılıklar'ı seçin.

    Düzenle'yi seçin ve .obj veya .lib dosyalarının adlarını ekleyin. Tam yol adlarını kullanmayın.

  3. Yapılandırma Özellikleri>Bağlayıcısı>Genel sayfasını ve ardından Ek Kitaplık Dizinleri'ni seçin.

    Düzenle'yi seçin ve .obj veya .lib dosyalarının dizin yolunu ekleyin. Yol genellikle test altındaki projenin derleme klasöründedir.

  4. Yapılandırma Özellikleri>VC++ Dizinleri sayfasını ve ardından Dizinleri Dahil Et'i seçin.

    Düzenle'yi seçin ve ardından projenin üst bilgi dizinini test altına ekleyin.

Testleri yazma

Test sınıflarını içeren herhangi bir .cpp dosyası "CppUnitTest.h" içermelidir ve için using namespace Microsoft::VisualStudio::CppUnitTestFrameworkbir using deyimine sahip olmalıdır. Test projesi sizin için zaten yapılandırılmış. Ayrıca bir ad alanı tanımı ve başlamanızı sağlamak için TEST_METHOD içeren bir TEST_CLASS içerir. Sınıf ve yöntem makrolarında ad alanı adını ve adları parantez içinde değiştirebilirsiniz.

Test çerçevesi, test modüllerini, sınıflarını ve yöntemlerini başlatmak ve testler tamamlandıktan sonra kaynakları temizlemek için özel makrolar tanımlar. Bu makrolar, bir sınıf veya yönteme ilk kez erişilmeden önce ve son test çalıştırıldıktan sonra yürütülecek kod oluşturur. Daha fazla bilgi için bkz . Başlatma ve temizleme.

Test koşullarını tanımlamak için Assert sınıfındaki statik yöntemleri kullanın. Çıkış Penceresine ileti yazmak için Günlükçü sınıfını kullanın. Test yöntemlerine öznitelik ekleme

Testleri çalıştırma

  1. Test menüsünde Windows>Test Gezgini'ni seçin.

  2. Tüm testleriniz pencerede görünmüyorsa, Çözüm Gezgini düğümüne sağ tıklayıp Oluştur veya Yeniden Derle'yi seçerek test projesini oluşturun.

  3. Test Gezgini'nde Tümünü Çalıştır'ı seçin veya çalıştırmak istediğiniz belirli testleri seçin. Diğer seçenekler için bir teste sağ tıklayın ve kesme noktaları etkin olarak hata ayıklama modunda çalıştırın.

  4. Sınıf tarafından yazılan iletileri görüntülemek için Çıkış Penceresinde açılan listeden Testler'i Logger seçin:

    C++ Output Window showing test messages

Gruplandırma özelliğini etkinleştirmek için özellikleri tanımlama

Test yöntemlerinde, test gezgininde testleri kategorilere ayırmanıza ve gruplandırmanıza olanak tanıyan özellikler tanımlayabilirsiniz. Bir özelliği tanımlamak için makroyu TEST_METHOD_ATTRIBUTE kullanın. Örneğin, adlı TEST_MY_TRAITbir özellik tanımlamak için:

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)

Birim testlerinizde tanımlanan özelliği kullanmak için:

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

C++ özellik özniteliği makroları

Aşağıdaki önceden tanımlanmış özellikler içinde CppUnitTest.hbulunur. Daha fazla bilgi için bkz . C++ API başvurusu için Microsoft Unit Testing Framework.

Makro Açıklama
TEST_METHOD_ATTRIBUTE(attributeName, attributeValue) Bir özelliği tanımlamak için TEST_METHOD_ATTRIBUTE makroyu kullanın.
TEST_OWNER(ownerAlias) Test yönteminin sahibini belirtmek için önceden tanımlanmış Sahip özelliğini kullanın.
TEST_PRIORITY(priority) Test yöntemlerinize göreli öncelikleri atamak için önceden tanımlanmış Öncelik özelliğini kullanın.