xUnit — это обозначение, используемое для платформы программного обеспечения для автоматизированного тестирования , которая имеет существенную структуру и функциональность, восходящую к общему предшественнику SUnit .
Фреймворк SUnit был перенесен на Java Кентом Беком и Эрихом Гаммой как JUnit , который приобрел широкую популярность. Адаптации к другим языкам также были популярны, что привело некоторых к утверждению, что структурированный, объектно-ориентированный стиль хорошо работает с популярными языками, включая Java и C# .
Название адаптации часто представляет собой вариацию «SUnit», в которой «S» заменено на сокращение названия целевого языка. Например, JUnit для Java и RUnit для R. Термин «xUnit» относится к любой такой адаптации, где «x» — это заполнитель для префикса, специфичного для языка.
Фреймворки xUnit часто используются для модульного тестирования — тестирования изолированной единицы кода — но могут использоваться на любом уровне тестирования программного обеспечения, включая интеграционное и системное .
Фреймворк xUnit имеет следующую общую архитектуру . [1]
Тестовый случай — это наименьшая часть теста, которая обычно кодирует простой путь через тестируемое программное обеспечение. Код тестового случая подготавливает входные данные и состояние среды, вызывает тестируемое программное обеспечение и проверяет ожидаемые результаты.
Программист пишет код для каждого тестового случая.
Тестовый случай реализуется с одним или несколькими утверждениями , которые проверяют ожидаемые результаты.
В общем, фреймворк предоставляет функциональность утверждений. Фреймворк может предоставлять способ использования пользовательских утверждений.
Тестовый набор — это набор связанных тестовых случаев. Они разделяют фреймворк, который позволяет повторно использовать код настройки и очистки среды.
Как правило, исполнитель тестов может запускать тесты набора в любом порядке, поэтому программисту не следует зависеть от порядка выполнения сверху вниз.
Тестовая фикстура (также известная как тестовый контекст) предоставляет среду для каждого тестового случая набора. Как правило, фикстура настраивается для настройки известной, хорошей среды выполнения перед запуском тестов и для очистки среды после.
Устройство настроено с одной или несколькими функциями, которые настраивают и очищают состояние. Тестовый исполнитель запускает каждую функцию настройки перед каждым случаем и запускает каждую функцию очистки после.
Программа запуска тестов — это программа, которая запускает тесты и сообщает результаты. [2] Программа часто является частью фреймворка.
Тестовый исполнитель может выдавать результаты в различных форматах. Часто общим и стандартным форматом является удобочитаемый , простой текст . Кроме того, исполнитель может выдавать структурированный вывод. Некоторые адаптации xUnit (например, JUnit) могут выводить XML , который может использоваться системой непрерывной интеграции, такой как Jenkins и Atlassian Bamboo .