Параметризований тест JUnit із прикладом за допомогою @Parameters

Зміст:

Anonim

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

Параметризований тест - це повторювати той самий тест знову і знову, використовуючи різні значення. Це допомагає розробнику заощадити час на виконання того самого тесту, який відрізняється лише введеними даними та очікуваними результатами.

За допомогою Параметризованого тесту можна налаштувати метод тестування, який отримує дані з якогось джерела даних.

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

Наведений вище підхід призводить до великої кількості надмірностей.

Нам потрібен простий підхід і. За допомогою параметризованого тесту ви можете просто додати метод для введення 10 вводів даних, і ваш тест буде запускатися 10 разів автоматично.

Кроки для створення параметризованого тесту JUnit

Наступний код показує приклад параметризованого тесту. Він перевіряє метод sum () класу Арифметика:

Крок 1) Створіть клас. У цьому прикладі ми збираємося ввести два числа за допомогою методу sum (int, int), який поверне суму заданих чисел

Крок 2) Створіть параметризований тестовий клас

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

  • Кодовий рядок 11: Анотуйте свій тестовий клас за допомогою @runWith (Parameterized.class).
  • Рядок коду 13: Оголошення змінної 'firstNumber' як приватної, а типу як int.
  • Рядок коду 14: Оголошення змінної 'secondNumber' як приватної та типу як int.
  • Рядок коду 15: Оголошення змінної 'ожидаемыйРезультат' як приватної і введіть як int.
  • Рядок коду 16: Оголошення змінної "airthematic" приватною та типом Airthematic.

@RunWith ( ім'я_класу.клас ): Анотація @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: Створення твердження твердження, щоб перевірити, чи еквівалентна наша сума тій, що ми очікували.

Крок 6) Створіть клас тестового бігуна для запуску параметризованого тесту:

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

  • Рядок коду 8: Оголошення основного методу тесту класу, який буде запускати наш тест JUnit.
  • Рядок коду 9: Виконуючи тестові кейси за допомогою JunitCore.runclasses, він буде використовувати параметр назви тестового класу (у нашому прикладі ми використовуємо Airthematic.class).
  • Рядок коду 11: Обробка результату за допомогою циклу for та роздрукування невдалого результату.
  • Кодовий рядок 13: Друк успішного результату.

Вихід:

Ось результат, який показує успішний тест без слідів відмов, як зазначено нижче:

Див. Результат на консолі, де показано додавання двох цифр: -

Короткий зміст :

Параметризований тест дозволяє розробнику виконувати один і той же тест знову і знову, використовуючи різні значення.

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

  • @RunWith
  • @ Параметри