Aracılığıyla paylaş


Microsoft.VisualStudio.TestTools.CppUnitTestFramework kullanma

Bu konuda ortak üyeleri listeler Microsoft::VisualStudio::CppUnitTestFramework ad alanı.

Üstbilgi dosyaları bulunan [x 86] VisualStudio2012 InstallFolder**\VC\UnitTest\include** klasörü.

Lib dosya içinde bulunan [x 86] VisualStudio2012 InstallFolder**\VC\UnitTest\lib** klasörü.

Bu konuda

CppUnitTest.h

  • Create test classes and methods

  • Initialize and cleanup

    • Test methods

    • Test classes

    • Test modules

  • Create test attributes

    • Test method attributes

    • Test class attributes

    • Test module attributes

    • Pre-defined attributes

    CppUnitTestAssert.h

    • General Asserts

      • Are Equal

      • Are Not Equal

      • Are Same

      • Are Not Same

      • Is Null

      • Is Not Null

      • Is True

      • Is False

      • Fail

    • Windows Runtime Asserts

      • Are Equal

      • Are Same

      • Are Not Equal

      • Are Not Same

      • Is Null

      • Is Not Null

    • Exception Asserts

      • Expect Exception

      CppUnitTestLogger.h

      • Logger

      • Write Message

CppUnitTest.h

Hh694604.collapse_all(tr-tr,VS.110).gifSınama Sýnýflar ve yöntemler yaratmak

TEST_CLASS(className)

Sınama yöntemleri içeren her sınıf için gereklidir.Tanımlayan SınıfAdı test sınıfı olarak.TEST_CLASSnamescape kapsamında bildirilmesi gerekir.

TEST_METHOD(methodName) 
{
    // test method body
}

Tanımlar methodName test yöntemi olarak.TEST_METHODyöntemin sınıf kapsamı içinde bildirilmelidir.

Hh694604.collapse_all(tr-tr,VS.110).gifBaşlatma ve temizleme

Hh694604.collapse_all(tr-tr,VS.110).gifTest yöntemleri

TEST_METHOD_INITIALIZE(methodName) 
{
    // method initialization code
}

Tanımlar methodName her bir test yöntemi çalıştırmadan önce bir yöntem olarak.TEST_METHOD_INITIALIZEyalnızca bir kez test sınıfta tanımlanabilir ve test sınıfında tanımlanmış olmalıdır.

TEST_METHOD_CLEANUP(methodName) 
{
    // test method cleanup  code
}

Tanımlar methodName her bir test yöntemi çalıştırdıktan sonra bir yöntem olarak.TEST_METHOD_CLEANUPyalnızca bir kez test sınıfta tanımlanabilir ve test sınıf kapsamı içinde tanımlanmalıdır.

Hh694604.collapse_all(tr-tr,VS.110).gifTest sınıfları

TEST_CLASS_INITIALIZE(methodName) 
{
    // test class initialization  code
}

Tanımlar methodName her test sınıfı oluşturduktan sonra bir yöntem olarak.TEST_CLASS_INITIALIZEyalnızca bir kez test sınıfta tanımlanabilir ve test sınıf kapsamı içinde tanımlanmalıdır.

TEST_CLASS_CLEANUP(methodName) 
{
    // test class cleanup  code
}

Tanımlar methodName her test sınıfı oluşturduktan sonra bir yöntem olarak.TEST_CLASS_CLEANUPyalnızca bir kez test sınıfta tanımlanabilir ve test sınıf kapsamı içinde tanımlanmalıdır.

Hh694604.collapse_all(tr-tr,VS.110).gifTest modülleri

TEST_MODULE_INITIALIZE(methodName)
{
    // module initialization code
}

Yöntemi tanımlar methodName bir modül yüklendiğinde çalışır.TEST_MODULE_INITIALIZEyalnızca bir kez test modülünde tanımlanabilir ve ad alanı kapsamında bildirilmesi gerekir.

TEST_MODULE_CLEANUP(methodName)

Yöntemi tanımlar methodName bir modül bellekten kaldırıldığında çalışır.TEST_MODULE_CLEANUPyalnızca bir kez test modülünde tanımlanabilir ve ad alanı kapsamında bildirilmesi gerekir.

Hh694604.collapse_all(tr-tr,VS.110).gifSınama öznitelikler oluşturmak

Hh694604.collapse_all(tr-tr,VS.110).gifSınama yöntemi öznitelikleri

BEGIN_TEST_METHOD_ATTRIBUTE(testMethodName) 
    TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)
    ...
END_TEST_METHOD_ATTRIBUTE()

Bir veya daha fazla tanımlı öznitelikler ekler TEST_METHOD_ATTRIBUTE test yöntemine makroları testClassName.

A TEST_METHOD_ATTRIBUTE makro adında bir öznitelik tanımlar ÖznitelikAdı ve ÖznitelikDeğeri.

Hh694604.collapse_all(tr-tr,VS.110).gifTest sınıfı öznitelikleri

BEGIN_TEST_CLASS_ATTRIBUTE(testClassName) 
    TEST_CLASS_ATTRIBUTE(attributeName, attributeValue)
    ...
END_TEST_CLASS_ATTRIBUTE()

Bir veya daha fazla tanımlı öznitelikler ekler TEST_CLASS_ATTRIBUTE makroları sına sınıfına testClassName.

A TEST_CLASS_ATTRIBUTE makro adında bir öznitelik tanımlar ÖznitelikAdı ve ÖznitelikDeğeri.

Hh694604.collapse_all(tr-tr,VS.110).gifTest modülü öznitelikleri

BEGIN_TEST_MODULE_ATTRIBUTE(testModuleName) 
    TEST_MODULE_ATTRIBUTE(attributeName, attributeValue)
    ...
END_TEST_MODULE_ATTRIBUTE()

Bir veya daha fazla tanımlı öznitelikler ekler TEST_MODULE_ATTRIBUTE test modülü makro testModuleName.

A TEST_MODULE_ATTRIBUTE makro adında bir öznitelik tanımlar ÖznitelikAdı ve ÖznitelikDeğeri.

Hh694604.collapse_all(tr-tr,VS.110).gifÖnceden tanımlanmış öznitelikleri

Bu öntanımlı öznitelik makrolar için makrolar yerine kullanılacak TEST_METHOD_ATTRIBUTE, TEST_CLASS_ATTRIBUTE, ya da TEST_MODULE_ATTRIBUTE yukarıda açıklanan.

TEST_OWNER(ownerAlias)

Bu ada sahip bir öznitelik tanımlar Owner ve öznitelik değeri ownerAlias.

TEST_DESCRIPTION(description)

Bu ada sahip bir öznitelik tanımlar Description ve öznitelik değeri Açıklama.

TEST_PRIORITY(priority)

Bu ada sahip bir öznitelik tanımlar Priority ve öznitelik değeri öncelik.

TEST_WORKITEM(workitem)

Bu ada sahip bir öznitelik tanımlar WorkItem ve öznitelik değeri çalışma öğesi.

TEST_IGNORE()

Bu ada sahip bir öznitelik tanımlar Ignore ve öznitelik değeri true.

CppUnitTestAssert.h

Hh694604.collapse_all(tr-tr,VS.110).gifGenel zorunlu

Hh694604.collapse_all(tr-tr,VS.110).gifEşit

İki nesne eşit olduğundan emin olun

template<typename T> 
static void AreEqual(
    const T& expected, 
    const T& actual, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki çift eşit olduğundan emin olun

static void AreEqual(
    double expected, 
    double actual, 
    double tolerance, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki gösterildiði eşit olduğundan emin olun

static void AreEqual(
    float expected, 
    float actual, 
    float tolerance, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

* İki karakter dizeleri eşit olduğundan emin olun

static void AreEqual(
    const char* expected, 
    const char* actual, 
    bool ignoreCase = false, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki w_char * dizeler eşit olduğundan emin olun

static void AreEqual(
    const wchar_t* expected, 
    const wchar_t* actual, 
    bool ignoreCase = false, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifEşit değildir

İki çift eşit doğrulayın

static void AreNotEqual(
    double notExpected, 
    double actual, 
    double tolerance, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki gösterildiði eşit doğrulayın

static void AreNotEqual(
    float notExpected, 
    float actual, 
    float tolerance, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

* İki karakter dizeleri eşit doğrulayın

static void AreNotEqual(
    const char* notExpected, 
    const char* actual, 
    bool ignoreCase = false, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki w_char * dizeler eşit doğrulayın

static void AreNotEqual(
    const wchar_t* notExpected, 
    const wchar_t* actual, 
    bool ignoreCase = false, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

İki başvuru operatöre dayanan eşit doğrulayın ==.

template<typename T> 
static void AreNotEqual(
    const T& notExpected, 
    const T& actual, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifAynı olan

İki başvuru (kimlik) aynı nesne örneğine başvurmak doğrulayın.

template<typename T> 
static void AreSame(
    const T& expected, 
    const T& actual, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifAynı değildir

İki başvuru aynı nesne örneği (kimlik) göstermediğinden doğrulayın.

template<typename T> 
static void AreNotSame (
    const T& notExpected, 
    const T& actual, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifNull

Bir işaretçi null olduğundan emin olun.

template<typename T> 
static void IsNull(
    const T* actual,
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifBoş değil

Bir işaretçi null olmadığından emin olun

template<typename T> 
static void IsNotNull(
    const T* actual, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifDoğrudur

Bir koşul doğru olduğundan emin olun

static void IsTrue(
    bool condition, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifYanlış

Koşul yanlış olduğunu doğrulayın

static void IsFalse(
    bool condition, 
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifBaşarısız

Başarısız için sınama durumu sonuca zorla

static void Fail(
    const wchar_t* message = NULL, 
    const __LineInfo* pLineInfo = NULL)

Hh694604.collapse_all(tr-tr,VS.110).gifWindows çalışma zamanı zorunlu

Hh694604.collapse_all(tr-tr,VS.110).gifEşit

İki Windows Runtime işaretçiler eşit olduğunu doğrular.

template<typename T> 
static void AreEqual(
    T^ expected, 
    T^ actual, 
    Platform::String^ message = nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Bu iki doğrular Platform::String ^ dizeleridir eşit.

template<typename T> 
static void AreEqual(
    T^ expected, 
    T^ actual, 
    Platform::String^ message= nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifAynı olan

İki Windows Runtime başvuruları aynı nesneye başvuran doğrular.

template<typename T> 
static void AreSame(
    T% expected, 
    T% actual, 
    Platform::String^ message= nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifEşit değildir

İki Windows Runtime işaretçiler eşit olmayan doğrular.

template<typename T> 
static void AreNotEqual(
    T^ notExpected, 
    T^ actual, 
    Platform::String^ message = nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Bu iki doğrular Platform::String ^ dizeleri eşit değildir.

static void AreNotEqual(
    Platform::String^ notExpected, 
    Platform::String^ actual, 
    bool ignoreCase = false, 
    Platform::String^ message= nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifAynı değildir

İki Windows çalışma zamanı başvuru aynı nesneye başvuran değil doğrular.

template<typename T> 
static void AreNotSame(
    T% notExpected, 
    T% actual, 
    Platform::String^ message= nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifNull

Windows çalışma zamanı gösteren bir işaretçi bir nullptr olduğunu doğrular.

template<typename T> 
static void IsNull(
    T^ actual,
    Platform::String^ message = nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifBoş değil

Windows çalışma zamanı gösteren bir işaretçi bir nullptr olmadığını doğrular.

template<typename T> 
static void IsNotNull(
    T^ actual, 
    Platform::String^ message= nullptr, 
    const __LineInfo* pLineInfo= nullptr)

Hh694604.collapse_all(tr-tr,VS.110).gifÖzel durum zorunlu

Hh694604.collapse_all(tr-tr,VS.110).gifÖzel durum beklediğiniz

Bir işlevin bir özel durum oluşturur doğrulayın:

template<typename _EXPECTEDEXCEPTION, typename _FUNCTOR> 
static void ExpectException(
    _FUNCTOR functor, 
    const wchar_t* message= NULL, 
    const __LineInfo* pLineInfo= NULL)

Bir işlevin bir özel durum oluşturur doğrulayın:

template<typename _EXPECTEDEXCEPTION, typename _RETURNTYPE> 
    static void ExpectException(
    _RETURNTYPE (*func)(), 
    const wchar_t* message= NULL, 
    const __LineInfo* pLineInfo = NULL)

CppUnitTestLogger.h

Hh694604.collapse_all(tr-tr,VS.110).gifGünlükçü

Günlükçü sınıfı, yazmak için statik yöntemler içerir.

class Logger

Hh694604.collapse_all(tr-tr,VS.110).gifİleti Yaz

static void 
Logger::WriteMessage(const wchar_t* message)

static void 
Logger::WriteMessage(const char* message)

Örnek

Bu kod örneği yer almaktadır.

////////////////////////////////////////////////////////////
/* USAGE EXAMPLE
// The following is an example of VSCppUnit usage.
// It includes examples of attribute metadata, fixtures,
// unit tests with assertions, and custom logging.

#include <CppUnitTest.h>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

BEGIN_TEST_MODULE_ATTRIBUTE()
    TEST_MODULE_ATTRIBUTE(L"Date", L"2010/6/12")
END_TEST_MODULE_ATTRIBUTE()

TEST_MODULE_INITIALIZE(ModuleInitialize)
{
    Logger::WriteMessage("In Module Initialize");
}

TEST_MODULE_CLEANUP(ModuleCleanup)
{
    Logger::WriteMessage("In Module Cleanup");
}

TEST_CLASS(Class1)
{

public:

    Class1()
    {
        Logger::WriteMessage("In Class1");
    }

    ~Class1()
    {
        Logger::WriteMessage("In ~Class1");
    }

    TEST_CLASS_INITIALIZE(ClassInitialize)
    {
        Logger::WriteMessage("In Class Initialize");
    }

    TEST_CLASS_CLEANUP(ClassCleanup)
    {
        Logger::WriteMessage("In Class Cleanup");
    }
    
    BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
        TEST_OWNER(L"OwnerName")
        TEST_PRIORITY(1)
    END_TEST_METHOD_ATTRIBUTE()

    TEST_METHOD(Method1)
    {   
        Logger::WriteMessage("In Method1");
        Assert::AreEqual(0, 0);
    }

    TEST_METHOD(Method2)
    {
        Assert::Fail(L"Fail");
    }
};

Ayrıca bkz.

Kavramlar

Kod birimi sınamaları kullanarak doğrulama

Birim Test Explorer ile yerel kod sınama

Birim Test Explorer ile varolan C++ uygulamaları sınaması