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 (class_name.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: Създаване на твърдение за твърдение, за да се провери дали нашата сума е еквивалентна на очакваното.

Стъпка 6) Създайте тестов клас на бегач, за да стартирате параметризиран тест:

Обяснение на кода:

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

Изход:

Ето изхода, който показва успешен тест без проследяване на грешки, както е дадено по-долу:

Вижте резултата на конзолата, който показва добавяне на две числа: -

Резюме :

Параметризираният тест позволява на разработчика да изпълнява същия тест отново и отново, използвайки различни стойности.

Важни пояснения, които да се използват по време на параметризиране

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