xUnit

xUnit — это собирательное название семейства фреймворков для модульного тестирования, структура и функциональность которых основана на SUnit, предназначавшегося для языка программирования Smalltalk. SUnit, разработанный Кентом Беком в 1998 году, был написан в высоко структурном объектно-ориентированном стиле, получил широкую популярность и был адаптирован для множества других языков. Названия фреймворков этого семейства образованы аналогично "SUnit", обычно заменяется буква "S" на первую букву (или несколько первых) в названии предполагаемого языка ("JUnit" для Java, "NUnit" для программной платформы .NET и т. д.). Семейство таких фреймворков с общей архитектурой обычно и известно как "xUnit".

Архитектура xUnit

Все фреймворки из семейства xUnit имеют следующие базовые компоненты архитектуры, которые в различных реализациях могут слегка варьироваться[1].

Модуль, выполняющий тестирование (Test runner)

Модуль представляет собой исполняемую программу, которая выполняет тесты, реализованные с помощью фреймворка, и отображает информацию о ходе их выполнения[2].

Тестовые сценарии (Test cases)

Варианты тестирования (тестовые сценарии/случаи) являются базовыми элементами модульных тестов.

Конфигурации тестирования (Test fixtures)

Конфигурация тестирования (также называемая контекстом) — это набор предварительно заданных условий или состояний объектов, необходимый для запуска теста. Разработчик должен задать заведомо корректную конфигурацию перед выполнением каждого теста, а затем вернуть оригинальную конфигурацию после завершения теста.

Наборы тестов (Test suites)

Тестовый набор — это несколько тестов, имеющих общую конфигурацию. Очерёдность выполнения тестов не должна иметь значения.

Выполнение тестов (Test execution)

Выполнение каждого теста происходит согласно следующей схеме:

setup(); /* Сначала подготавливается 'контекст' тестирования */
...
/* Тело теста - здесь указывается тестовый сценарий */
...
teardown(); /* После прохождения теста (независимо от его результата) контекст тестирования "очищается" */

Форматирование результатов тестирования (Test result formatter)

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

Утверждения (Assertions)

Утверждение в тесте — это функция или макрос, которая проверяет поведение или состояние тестируемого модуля. Часто утверждением является проверка равенства или неравенства некоторого параметра модуля ожидаемому результату. Неудачное прохождение проверки приводит к провалу всего тестового сценария и (если необходимо) к исключению, которое останавливает сценарий без перехода к следующему утверждению.

Фреймворки xUnit

Фреймворки с архитектурой, характерной для xUnit, существуют для множества языков программирования и платформ разработки. Примеры:

  • CppUnit - фреймворк для C++.
  • DUnit - инструмент для среды разработки Delphi.
  • JUnit - библиотека для Java.
  • NUnit, xUnit.NET - среда юнит-тестирования для .NET.
  • phpUnit - библиотека для PHP
  • unittest - фреймворк для Python.

Остальные примеры:

  • Список фреймворков для модульного тестирования

См. также

Примечания

  1. Beck, Kent Simple Smalltalk Testing: With Patterns. Дата обращения: 25 июня 2015. Архивировано 15 марта 2015 года.
  2. Meszaros, Gerard (2007) xUnit Test Patterns, Pearson Education, Inc./Addison Wesley

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.