Если вы посмотрите на многие устаревшие тестовые модули, велика вероятность того, что они реализованы как одна большая тестовая функция, которая состоит из смеси контрольных и выходных утверждений. С ним что-то не так? Да. Существуют различные недостатки в подходе с одной тестовой функцией:
Одной большой функцией становится очень трудно управлять, если количество проверок превышает разумный предел. Что проверяется и где - кто знает?
Многие проверки требуют аналогичной подготовки. Это приводит к повторению кода в тестовой функции.
Если фатальная ошибка или исключение вызваны какими-либо проверками в рамках тестовой функции, остальные тесты пропускаются.
Невозможно выполнить только проверки для конкретной подсистемы тестируемого блока.
Нет резюме того, как различные подсистемы тестируемого блока выполняются в рамках теста.
Вышеприведенные пункты должны дать понять, что предпочтительно разделить тестовый модуль.в меньшиеединицы. Эти устройства являются тестовыми случаями.,тестовые комплектыиприспособления.
Subjects covered by this section
Declaration
.Единичная система испытанийподдерживает несколько методов объявлениятестового случая. Тестовые случаи могут быть реализованы с использованием свободной функции, такой как синтаксис, или на основе фактической свободной функции, объекта функции, могут быть определены с параметрами/данными или без них, или в качестве шаблонных функций для работы с различными типами.
Organization
Unit Test Frameworkпредоставляет возможность группировать несколько тестовых случаев втестовые наборы. Тестовые наборы могут быть вложены, и набор тестовых наборов и тестовых корпусов определяеттестовое дерево, где листья являются тестовыми корпусами. Кроме иерархической структуры.Unit Test Frameworkпозволяет организовать тестовое дерево с использованиемлогической группировкиизависимостейи предоставляет вам средства управления для использования определенной организации тестового дерева так, как вы хотите.
Attributes
Можно указать испытательный блокатрибутовс помощьюдекораторов. Атрибуты используются для тонкозернистого управления различными аспектами выполнения тестового модуля, такими каклогическая группировка,зависимости,ожидаемые сбоии т.д.
Setup/teardown test unit actions
Когда несколько тестов имеют одинаковую настройку (окружающая среда, подготовка тестовых данных и т.д.), код подготовки и очистки может быть факторизован вприспособлениях. ВЕдиничная система испытаний, приспособления могут быть связаны с тестовыми кейсами, тестовыми наборами или глобально с испытательным модулем.
Статья Declaring and organizing tests раздела Boost.Test Boost.Test может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.