JUnit Параметризиран тест с пример с помощта на @Parameters
Какво е параметризиран тест в Junit?
Параметризираният тест е да се изпълнява един и същ тест отново и отново, като се използват различни стойности. Помага на разработчика да спести време при изпълнение на един и същ тест, който се различава само по входните данни и очакваните резултати.
Използвайки параметризиран тест, човек може да настрои тестов метод, който извлича данни от някакъв източник на данни.
Помислете за прост тест за сумиране на различни числа. Кодът може да изглежда така –
Подходът по-горе води до много излишък.
Имаме нужда от прост подход и. С помощта на параметризиран тест можете просто да добавите метод за въвеждане на 10 входни данни и вашият тест ще се изпълнява 10 пъти автоматично.
Стъпки за създаване на параметризиран JUnit тест
Следващият код показва пример за параметризиран тест. Тества метода sum() на класа Arithmetic:
Стъпка 1) Създайте клас. В този пример ще въведем две числа, като използваме метода sum (int,int), който ще върне сумата от дадени числа
Стъпка 2) Създайте параметризиран тестов клас
Code Обяснение
- Code Ред 11: Анотирайте своя тестов клас с помощта на @runWith(Parameterized.class).
- Code Ред 13: Деклариране на променливата 'firstNumber' като частна и тип като int.
- Code Ред 14: Деклариране на променливата 'secondNumber' като частна и тип int.
- Code Ред 15: Деклариране на променливата 'expectedResult' като частна и тип като int.
- Code Ред 16: Деклариране на променливата 'airthematic' като частна и тип като Airthematic.
@RunWith(име_на_клас.клас): @RunWith анотацията се използва за указване на името на неговия клас бегач. Ако не посочим никакъв тип като параметър, времето за изпълнение ще избере BlockJunit4ClassRunner по подразбиране.
Този клас отговаря за изпълнението на тестове с нов тестов екземпляр. Отговаря за извикването JUnit методи на жизнения цикъл като настройка (асоциирани ресурси) и разрушаване (освобождаване на ресурси).
За да параметризирате, трябва да анотирате с помощта на @RunWith и да подадете необходимия .class за тестване
Стъпка 3) Създайте конструктор, който съхранява тестовите данни. Той съхранява 3 променливи
Стъпка 4) Създайте статичен метод, който генерира и връща тестови данни.
Code Ред 32,33: Създаване на двумерен масив (осигуряване на входни параметри за добавяне). Използвайки метода asList, ние преобразуваме данните в тип List. Тъй като връщащият тип въвеждане на метод е колекция.
Code Ред 30: Използването на @Параметри анотация, за да създадем набор от входни данни, за да изпълним нашия тест.
Статичният метод, идентифициран от анотацията @Parameters, връща колекция, където всеки запис в колекцията ще бъде входните данни за една итерация на теста.
Помислете за елемента
1,2,3 {}
Тук
първо число =1
второ число=2
очакван резултат=3
Тук всеки елемент от масива ще бъде предаден на конструктора, един по един, тъй като класът се инстанцира многократно.
Стъпка 5) Пълният код
Code Обяснение:
- Code Ред 25: Използване на анотация @Before за настройка на ресурсите (Airthematic.class тук). Анотацията @Before се използва тук за изпълнение преди всеки тестов случай. Той съдържа предварително условие за теста.
- Code Ред 36: Използване на @Test анотация за създаване на нашия тест.
- Code Ред 39: Създаване на изявление за твърдение, за да проверим дали нашата сума е еквивалентна на очакваното.
Стъпка 6) Създайте клас за изпълнение на тестове, за да изпълните параметризиран тест:
Code Обяснение:
- Code Ред 8: Деклариране на основния метод на теста на класа, който ще изпълнява нашия JUnit тест.
- Code Ред 9: Изпълнявайки тестови случаи с помощта на JunitCore.runclasses, той ще вземе името на тестовия клас като параметър (В нашия пример използваме Airthematic.class).
- Code Ред 11: Обработка на резултата с помощта на цикъл for и отпечатване на неуспешен резултат.
- Code Ред 13: Отпечатване на успешния резултат.
Изход:
Ето резултата, който показва успешен тест без неуспех tracкакто е посочено по-долу:
Вижте резултата на конзолата, който показва събиране на две числа: -
Oбобщение
Параметризираният тест позволява на разработчика да изпълнява един и същ тест отново и отново, използвайки различни стойности.
Важни бележки, които трябва да се използват по време на параметризирането
- @RunWith
- @Параметри









