Параметризованный тест JUnit с примером с использованием @Parameters

Содержание:

Anonim

Что такое параметризованный тест в Junit?

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

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

Рассмотрим простой тест для суммирования разных чисел. Код может выглядеть так -

Приведенный выше подход приводит к избыточности.

Нужен простой подход и. Используя параметризованный тест, вы можете просто добавить метод для ввода 10 данных, и ваш тест будет запускаться 10 раз автоматически.

Шаги по созданию параметризованного теста JUnit

В следующем коде показан пример параметризованного теста. Он проверяет метод sum () класса Arithmetic:

Шаг 1) Создайте класс. В этом примере мы собираемся ввести два числа с помощью метода sum (int, int), который вернет сумму заданных чисел.

Шаг 2) Создайте параметризованный тестовый класс

Код Пояснение

  • Строка кода 11: аннотируйте свой тестовый класс с помощью @runWith (Parameterized.class).
  • Строка кода 13: Объявление переменной firstNumber частной и типа int.
  • Строка кода 14: Объявление переменной secondNumber частной и типа int.
  • Строка кода 15: Объявление переменной "expectedResult" частной и типа int.
  • Строка кода 16: Объявление переменной airthematic как частной и типа Airthematic.

@RunWith ( имя_класса.class ): аннотация @RunWith используется для указания имени его класса бегуна. Если мы не укажем какой-либо тип в качестве параметра, среда выполнения по умолчанию выберет BlockJunit4ClassRunner .

Этот класс отвечает за запуск тестов с новым экземпляром теста. Он отвечает за вызов методов жизненного цикла JUnit, таких как настройка (связывание ресурсов) и разрушение (освобождение ресурсов).

Для параметризации вам необходимо аннотировать с помощью @RunWith и передать требуемый .class для тестирования

Шаг 3) Создайте конструктор, в котором хранятся тестовые данные. Он хранит 3 переменные

Шаг 4) Создайте статический метод, который генерирует и возвращает тестовые данные.

Строка кода 32,33: Создание двумерного массива (предоставление входных параметров для добавления). Используя метод asList, мы преобразуем данные в тип списка. Так как возвращаемый тип ввода метода - коллекция.

Строка кода 30: Использование аннотации @Parameters для создания набора входных данных для запуска нашего теста.

Статический метод, идентифицированный аннотацией @Parameters, возвращает коллекцию, где каждая запись в коллекции будет входными данными для одной итерации теста.

Рассмотрим элемент

{1,2,3}

Здесь

firstNumber = 1

secondNumber = 2

ожидаемый результат = 3

Здесь каждый элемент массива будет передан конструктору по одному, поскольку класс создается несколько раз.

Шаг 5) Полный код

Пояснение к коду:

  • Строка кода 25: Использование аннотации @Before для настройки ресурсов (здесь Airthematic.class). Аннотация @Before используется здесь для запуска перед каждым тестовым примером. Он содержит предварительное условие теста.
  • Строка кода 36: Использование аннотации @Test для создания нашего теста.
  • Строка кода 39: Создание оператора assert для проверки, эквивалентна ли наша сумма ожидаемой.

Шаг 6) Создайте класс тестера для запуска параметризованного теста:

Пояснение к коду:

  • Строка кода 8: Объявление основного метода теста класса, который будет запускать наш тест JUnit.
  • Строка кода 9: При выполнении тестовых случаев с использованием JunitCore.runclasses в качестве параметра будет использоваться имя тестового класса (в нашем примере мы используем Airthematic.class).
  • Строка кода 11: Обработка результата с использованием цикла for и распечатка неудачного результата.
  • Строка кода 13: Распечатка успешного результата.

Выход:

Вот результат, который показывает успешный тест без трассировки сбоев, как показано ниже:

Посмотрите результат на консоли, который показывает сложение двух чисел: -

Резюме :

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

Важные примечания, которые следует использовать при параметризации

  • @Бежать с
  • @ Параметры