Поделиться через


Платформа Unit Testing Framework

Обновлен: Ноябрь 2007

Платформа Unit Testing Framework поддерживает выполнение модульных тестов в Visual Studio. При написании кода модульных тестов используются классы и члены пространства имен Microsoft.VisualStudio.TestTools.UnitTesting. Они используются как при создании модульных тестов с нуля, так и при доработке тестов, созданных из проверяемого кода.

Группы элементов

Для более четкого представления общих сведений о платформе Unit Testing Framework элементы пространства имен "UnitTesting" в данном разделе упорядочены по группам в зависимости от функциональности.

ms243147.alert_note(ru-ru,VS.90).gifПримечание.

Элементы атрибутов, имена которых заканчиваются строкой Attribute, могут использоваться как со строкой Attribute, так и без нее. Например, следующие два примера кода выполняют одну и ту же задачу.

[TestClass()]

[TestClassAttribute()]

Элементы, используемые для управляемого данными тестирования

Для настройки управляемых данными модульных тестов используются следующие элементы. Дополнительные сведения см. в разделах Написание кода модульного теста, управляемого данными и Практическое руководство. Настройка модульного теста, управляемого данными.

Атрибуты, используемые для установки порядка вызовов

Кодовая точка, оформленная одним из следующих атрибутов, вызывается в указанный момент времени. Дополнительные сведения см. в разделе Структура модульных тестов.

Для сборок

Методы "AssemblyInitialize" и "AssemblyCleanup" вызываются сразу после загрузки сборки и непосредственно перед ее выгрузкой.

Для классов

Методы "ClassInitialize" и "ClassCleanup" вызываются сразу после загрузки класса и непосредственно перед его выгрузкой.

Для методов теста

Атрибуты, используемые для идентификации тестовых классов и методов

Каждый тестовый класс должен иметь атрибут "TestClass", каждый тестовый метод — атрибут "TestMethod". Дополнительные сведения см. в разделе Структура модульных тестов.

Классы "Assert" и связанные с ним исключения

С помощью модульных тестов можно проверить поведение конкретного приложения, используя различные вид операторов, исключений и атрибутов "Assert". Дополнительные сведения см. в разделе Использование классов Assert.

Класс "TestContext"

В свойствах класса контекста теста хранятся сведения о текущем тестовом запуске. Например, в свойствах "TestContext.DataRow" и "TestContext.DataConnection" содержатся сведения, используемые тестом для управляемого данными модульного тестирования.

Атрибуты для тестов идентификации и сортировки

В окне свойств Visual Studio отображаются следующие атрибуты и связанные с ними значения для конкретного метода теста.

Эти атрибуты не предназначены для доступа из кода модульного теста. Вместо этого они влияют на способ применения или выполнения модульного теста либо через интерфейс IDE Visual Studio, либо через обработчик тестов Team System.

Например, некоторые из этих атрибутов появляются в качестве столбцов в окнах редактора списка тестов и результатов теста, что позволяет использовать их для группировки и сортировки тестов и их результатов.

Одним из таких атрибутов является "TestPropertyAttribute" с помощью которого в модульные тесты добавляются произвольные метаданные. Например, его можно использовать для хранения имени области действия пройденного теста, пометив модульный тест с помощью [TestProperty("TestPass", "Accessibility")]. Или для хранения индикатора типа теста: [TestProperty("TestKind", "Localization")]. Созданные с помощью этого атрибута свойство и присвоенное ему значение отобразятся в окне свойств Visual Studio под заголовком Сведения теста.

Классы конфигурации теста

Атрибуты, используемые для формирования отчетов

В этом разделе описаны атрибуты, связывающие метод теста, к которому они применены, с сущностями в иерархии командного проекта Team Foundation Server. Дополнительные сведения см. в разделе Практическое руководство. Включение отчетности по результатам теста.

Классы, использующие закрытые методы доступа

Как описывается в разделе Практическое руководство. Тестирование закрытых методов, вы можете создать модульный тест для закрытого метода. При этом создается класс закрытых методов доступа, являющийся экземпляром объекта класса "PrivateObject". Класс "PrivateObject" является классом-оболочкой, использующим отражение в рамках процесса доступа через закрытые методы. Аналогичным является класс "PrivateType", но вместо вызова закрытых методов экземпляра используется вызов закрытых статических методов.

См. также

Основные понятия

Использование классов Assert

Использование класса TestContext

Ссылки

Microsoft.VisualStudio.TestTools.UnitTesting