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.
Остальные примеры:
См. также
- Тестирование программного обеспечения
- Модульное тестирование
- Разработка через тестирование
- Экстремальное программирование
Примечания
- ↑ Beck, Kent. Simple Smalltalk Testing: With Patterns. Дата обращения: 25 июня 2015. Архивировано 15 марта 2015 года.
- ↑ Meszaros, Gerard (2007) xUnit Test Patterns, Pearson Education, Inc./Addison Wesley
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.