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


Модульные тесты и C++

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

Модульные тесты можно использовать в среде Visual C# и Visual Basic.

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

При создании модульных тестов для универсальных типов и универсальных методов в Visual C# and Visual Basic существуют некоторые ограничения. Дополнительные сведения см. в разделе Модульные тесты и универсальные объекты.

Модульные тесты в среде Visual C++ используются в соответствии с особенностями, описанными в этом разделе.

Способ использования модульных тестов зависит от роли, которую играет Visual C++ в решении. Существуют следующие варианты.

  • Модульные тесты используются для тестирования кода, написанного в Visual C++. Сведения см. в разделе Рабочий код Visual C++.

  • Тестовый проект содержит модульные тесты, написанные в Visual C++. Сведения см. в разделе Тестовые проекты и Visual C++.

  • Планируется автоматическое создание модульных тестов из кода, написанного в Visual C++. Сведения см. в разделе Создание кода и Visual C++.

Рабочий код Visual C++

При тестировании кода, называемого рабочим, следует иметь ввиду следующее.

  • Неуправляемый. Неуправляемый рабочий код необходимо вызывать из статической библиотеки, OBJ-файла или точки входа библиотеки DLL. Методы класса, внедренные в исполняемый файл или библиотеку, не работают, поскольку неуправляемый код Visual C++ не поддерживает механизм обнаружения в среде выполнения — отражение. Поэтому работают только традиционные встроенные механизмы привязки.

  • Смешанный. Проект является смешанным, если для него используется параметр компилятора /clr. Из смешанного кода, не являющегося исполняемым файлом, вызываются и тестируются все предназначенные для этого методы.

  • Безопасный или чистый. Из исполняемого файла или библиотеки DLL, рабочий код которых является безопасным или чистым, вызываются и тестируются все предназначенные для этого методы.

Тестовые проекты и Visual C++

Возможности проекта меняются в зависимости от установленных параметров компилятора. Дополнительные сведения см. в разделах Параметры компилятора и /clr (компиляция CLR). В следующих разделах описываются возможности, доступные для различных установок параметров компилятора.

Неуправляемый

В тестовых проектах нельзя использовать неуправляемый язык программирования Visual C++.

Смешанный

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

  • Неуправляемые статические библиотеки

  • Точки входа неуправляемой библиотеки DLL

  • Автономные OBJ-файлы

  • Сборки смешанного режима библиотеки DLL с вызываемыми методами. Это не относится к исполняемым файлам, поскольку они содержат неуправляемый код, который, как правило, не поддерживает смену базового адреса.

  • Любой вызываемый управляемый метод. Это код, скомпилированный с параметром /clr:pure или /clr:safe.

Безопасный или чистый.

Использование параметра компилятора /clr:pure или /clr:safe в тестовом проекте предоставляет возможность тестировать любой вызываемый метод. Это означает, что рабочий код скомпилирован с параметрами /clr, /clr:pure или /clr:safe.

Создание кода и Visual C++

Модульные тесты создаются в тестовом проекте Visual C++. Эти тесты можно создавать из рабочего кода проекта Visual C++. Следует иметь ввиду следующее.

  • Рабочий код проекта. Модульные тесты создаются, только если для рабочего кода, написанного в Visual C++, использовался параметр компилятора /clr:safe. 

  • Тестовый проект. Модульные тесты создаются из кода в любом типе тестового проекта Visual C++: смешанном, безопасном или чистом. По умолчанию тип проекта имеет параметр /clr:safe. Изменить проект на /clr или /clr:pure можно в любой момент с помощью параметров компилятора Visual C++. Дополнительные сведения см. в разделе /clr (компиляция CLR).

См. также

Задачи

Практическое руководство. Создание модульного теста

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

Модульные тесты и универсальные объекты

Ссылки

Параметры компилятора