TestNG - Обзор

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

JUnit побудил разработчиков понять полезность тестов, особенно модульных, по сравнению с любой другой средой тестирования. Используя довольно простую, прагматичную и строгую архитектуру, JUnit смог «заразить» большое количество разработчиков. Взгляните на наше руководство по JUnit, чтобы лучше понять его возможности. В то же время у JUnit есть и некоторые недостатки, которые перечислены ниже:

  • Изначально предназначенный только для модульного тестирования, теперь используется для всех видов тестирования.

  • Невозможно выполнить тестирование зависимости.

  • Плохой контроль конфигурации (setUp / tearDown).

  • Навязчивый (заставляет вас расширять классы и называть свои методы определенным образом).

  • Статическая модель программирования (заставляет вас перекомпилировать без необходимости).

  • Управление различными наборами тестов в сложных проектах может быть очень сложным.

Что такое TestNG?

Определение TestNG согласно его документации выглядит следующим образом:

TestNG - это среда тестирования, вдохновленная JUnit и NUnit, но с добавлением некоторых новых функций, которые делают ее более мощной и простой в использовании.

TestNG - это среда автоматизированного тестирования с открытым исходным кодом; гдеNG средства NдобGпросачивание. TestNG похож на JUnit (особенно JUnit 4), но не является расширением JUnit. Он вдохновлен JUnit. Он разработан, чтобы быть лучше, чем JUnit, особенно при тестировании интегрированных классов. Создатель TestNG - Седрик Беуст .

Устраняя большинство ограничений старой структуры, TestNG дает разработчику возможность писать более гибкие и мощные тесты. Поскольку он в значительной степени заимствует аннотации Java (представленные в JDK 5.0) для определения тестов, он также может показать вам, как использовать эту новую функцию языка Java в реальной производственной среде.

Возможности TestNG

  • Поддерживает аннотации.

  • TestNG использует больше возможностей Java и OO.

  • Поддерживает тестирование интегрированных классов (например, по умолчанию нет необходимости создавать новый экземпляр тестового класса для каждого метода тестирования).

  • Отделяет код теста времени компиляции от информации о конфигурации / данных времени выполнения.

  • Гибкая конфигурация времени выполнения.

  • Вводит «тестовые группы». После того, как вы скомпилировали свои тесты, вы можете просто попросить TestNG запустить все «интерфейсные» тесты или «быстрые», «медленные», «базовые» тесты и т. Д.

  • Поддерживает зависимые методы тестирования, параллельное тестирование, нагрузочное тестирование и частичный отказ.

  • Гибкий плагин API.

  • Поддержка многопоточного тестирования.