Шта је параметарски тест у Јуниту?
Параметарски тест је извођење истог теста изнова и изнова користећи различите вредности. Помаже програмеру да уштеди време у извршавању истог теста који се разликује само по улазним подацима и очекиваним резултатима.
Коришћењем параметризованог теста може се поставити метода испитивања која преузима податке из неког извора података.
Размотрите једноставан тест за сумирање различитих бројева. Код може изгледати као -
Горе наведени приступ доводи до великог вишка.
Потребан нам је једноставан приступ и. Коришћењем параметризованог теста можете само додати методу за унос 10 уноса података и тест ће се аутоматски покренути 10 пута.
Кораци за креирање параметарског ЈУнит теста
Следећи код приказује пример за параметризовани тест. Тестира се метода сум () класе Аритметика:
Корак 1) Направите класу. У овом примеру ћемо унети два броја методом сум (инт, инт) која ће вратити збир задатих бројева
Корак 2) Направите параметарску класу теста
Објашњење кода
- Линија кода 11: Означите тест класу помоћу @рунВитх (Параметеризед.цласс).
- Линија кода 13: Проглашавање променљиве „фирстНумбер“ приватном, а типа инт.
- 14. ред ретка : Проглашавање променљиве „сецондНумбер“ приватном и упишите као инт.
- Редак кода 15: Проглашавање променљиве „очекивани резултат“ приватном и упишите као инт.
- Кодни ред 16: Проглашавање променљиве „аиртхематиц“ приватном и врсте као Аиртхематиц.
@РунВитх (име_класе.класа): Ознака @РунВитх се користи за специфицирање имена класе тркача. Ако не одредимо ниједан тип као параметар, рунтиме ће подразумевано изабрати БлоцкЈунит4ЦлассРуннер .
Ова класа је одговорна за покретање тестова са новом тестном инстанцом. Одговорна је за позивање метода животног циклуса ЈУнит, као што су подешавање (придружени ресурси) и уклањање (ресурси издавања).
Да бисте параметеризовали, потребно је да додате коментаре помоћу @РунВитх и положите потребан .цласс који треба тестирати
Корак 3) Направите конструктор који чува тест податке. У њему се чувају 3 променљиве
Корак 4) Направите статички метод који генерише и враћа податке о тестирању.
Линија кода 32,33: Стварање дводимензионалног низа (пружање улазних параметара за сабирање). Користећи асЛист метод, податке претварамо у тип Листа. Будући да је повратни тип уноса методе прикупљање.
Ред 30: Коришћење ознаке @ Параметерс за креирање скупа улазних података за покретање нашег теста.
Статичка метода идентификована ознаком @Параметерс враћа колекцију где ће сваки унос у збирци бити улазни подаци за једну итерацију теста.
Размотримо елеменент
{1,2,3}
Ево
фирстНумбер = 1
сецондНумбер = 2
очекивани резултат = 3
Овде ће сваки елемент низа бити прослеђен конструктору, један по један, јер се класа инстанцира више пута.
Корак 5) Комплетна шифра
Објашњење кода:
- Линија кода 25: Коришћење ознаке @Бефоре за подешавање ресурса (овде је Аиртхематиц.цласс). Овде се користи напомена @Бефоре за покретање пре сваког тест случаја. Садржи предуслов теста.
- Кодни ред 36: Коришћење ознаке @Тест за креирање нашег теста.
- Линија 39: Стварање изјаве за потврду да бисмо проверили да ли је наш збир еквивалентан ономе што смо очекивали.
Корак 6) Направите класу тест тркача за покретање параметризованог теста:
Објашњење кода:
- Кодни ред 8: Проглашавање главне методе класе која ће покретати наш тест ЈУнит.
- Линија 9: Извршење тест случајева помоћу ЈунитЦоре.рунцлассес, узеће име класе теста као параметар (у нашем примеру користимо Аиртхематиц.цласс).
- Линија кода 11: Обрада резултата помоћу фор фор и испис неуспелог резултата.
- Шифра 13: Штампање успешног резултата.
Излаз:
Ево излаза који показује успешан тест без трага отказа како је дато у наставку:
Погледајте резултат на конзоли која показује сабирање два броја: -
Резиме :
Параметарски тест омогућава програмеру да изводи исти тест изнова и изнова користећи различите вредности.
Важне напомене које ће се користити током параметризације
- @РунВитх
- @Параметерс