list junit annotations
Овај водич објашњава све о ЈУнит напоменама, као и поређење напомена у ЈУнит 4 у односу на ЈУнит 5:
Научили смо различите начине за извршавање ЈУнит тест случајева и видели смо како да креирамо и извршимо тестни пакет у нашем претходном водичу.
У овом упутству ћемо упознати истакнути аспект ЈУнит-а који се зове Биљешке. Почевши од ЈУнит 4, напомене су на месту и чине ЈУнит врло једноставним, кориснијим и много једноставнијим за употребу.
Биљешке је Јава АПИ који омогућава ЈВМ-у да препозна тип методе дефинисане у тест класи. Постоје „напомене о повратном позиву за животни циклус“ које се често користе.
=> Посетите овде да бисте научили ЈУнит из огреботина.
Шта ћете научити:
ЈУнит напомене - ЈУНИТ 4 вс ЈУНИТ 5
Извршење теста пролази кроз различите фазе животног циклуса како је дато у наставку:
- Пре започињања теста, постоје одређене активности које треба обавити на почетку предавања.
- Одређене друге активности које треба обавити пре него што тест примерак почне да се извршава.
- Одређене активности које је потребно извршити након извршења теста и
- Одређене активности на крају извршења свих тестова у класи.
Да би се утврдило да ли се ове активности изводе током сваке фазе животног циклуса Јава, морају постојати одређене кориснички дефинисане методе или функције назване „ методе повратног позива у животном циклусу .
Понашање ових методе повратног позива у животном циклусу одређује уграђена „ напомене о повратном позиву током животног циклуса ' користи се у ЈУнит-у.
Пример: Покушајмо да то учинимо још једноставнијим повезивањем ових метода повратног позива и напомена у животном циклусу са примером тестирање аутомата за кафу.
- Метод мацхинеРеади () која проверава да ли су вода, млеко и зрна кафе доступни пре него што се машина укључи.
- Друга метода стартМацхине () који укључује машину, поставља нову нову шољу за папир у уређај.
- Тест примерак који проверава „ Врућа вода ()' опција.
- Још један тест тест који проверава „ Цаппуццино ()' опција.
- Још један тест тест који проверава „ ЕкпрессоЦоффее ()' опција.
- Друга метода “ тхровЦуп () “Која користи бачене чаше у канту за смеће.
- Метода на нивоу класе “ тхровТрасхандСвитцхОфф () ”Баца преливену отпадну течност из лежишта у слив и искључује машину.
Дакле, у горњем примеру, ево како следи животни циклус теста:
- стартМацхине () ће се покретати пре сваког тестцасе-а - Врућа вода (), Цаппуццино () и ЕкпрессоЦоффее () трчи.
- Свака од ових примерака такође следи методу тхровЦуп ().
- Методе мацхинеРеади () и тхровТрасхандСвитцхОфф () су методе на нивоу класе које се изводе само једном за класу. Метода мацхинеРеади () ради једном док класа започиње извршење. Метода тхровТрасхандСвитцхОфф () се покреће једном након завршетка свих тест случајева.
Сада се поставља питање да ли су ово само пуке Јава методе, онда:
разлика између тест случаја и плана испитивања
- Како ћемо инсистирати да ЈВМ ради мацхинеРеади () само једном на нивоу одељења и тхровТрасхандСвитцхОфф () на крају извршења класе?
- Како ћемо то обавестити ЈВМ стартМацхине () и тхровЦуп () треба покренути пре покретања сваког тестцасе-а, односно након завршетка сваког тестцасе-а?
- Како можемо учинити да ЈВМ идентификује те методе Врућа вода (), Цаппуццино () и ЕкпрессоЦоффее () да ли треба покретати тест случајеве?
Одговор: Једини одговор на горња питања је да напомене о повратном позиву током животног циклуса чине сву потребну магију.
(За сада претпоставимо да ову класу креирамо у ЈУнит 4)
Напомене о животном циклусу - @БефореЦласс, @АфтерЦласс, @Бефоре, @Афтер, и @Тест су стварни одговори на горња три питања. Прилично смо сигурни да ћете након читања доле наведених смерница разјаснити напомене о повратном позиву животног циклуса и његов ток рада.
- Означите методу мацхинеРеади () са @Пре наставе и ЈВМ ће га покренути једном током почетка наставе.
- Означите методу баци смеће () са @После часа и ЈВМ ће га покренути једном на крају часа.
- Означите методу стартМацхине () са @Пре него што и ЈВМ ће га покренути пре покретања сваког тестцасе-а.
- Означите методу тхровЦуп () са @После а ЈВМ ће га покренути након извршења сваког тест случаја.
- Означите сваку од ових метода Врућа вода (), Цаппуццино () и ЕкпрессоЦоффее () са @Тест и ЈВМ зна да су ово основни тест случајеви за класу ЈУнит које треба извршити.
Хајде да брзо погледамо Обавештења о повратном позиву за животни циклус ЈУнит-а за ЈУнит 4 у односу на ЈУнит 5
4. ЈУНИТ БИЉЕШКЕ | 5. ЈУНИТ БИЉЕШКЕ | |
---|---|---|
@РепеатедТест | 1.Јунит 5 подржава поновљено извршавање методе испитивања одређени број пута користећи @РепеатедТест анотацију | |
@Пре него што | @БефореЕацх | |
@После | @АфтерЕацх | |
@Пре наставе | @БефореАлл | |
@После часа | @После свега | |
@Тест | @Тест |
Секвенцијални ток напомена животног циклуса
Доље је дат секвенцијални ток напомена о животном циклусу за ЈУнит 4:
- Метода означена са @БефореЦласс извршава се једном на почетку класе.
- Метода означена са @Бефоре се извршава пре почетка Тестцасе 1.
- Метода Тестцасе1 означена са @Тест је тестцасе у класи.
- Метода означена са @Афтер се покреће након што Тестцасе 1 заврши извршење.
- Метода означена са @Бефоре се извршава пре почетка Тестцасе 2.
- Метода Тестцасе2 означена са @Тест је тестцасе у класи.
- Метода означена са @Афтер се покреће након што Тестцасе 2 заврши извршење.
- Метода означена са @АфтерЦласс извршава се једном на крају класе након што се изврше и тестцасе 1 и 2.
Секвенцијални ток напомена о животном циклусу за ЈУнит 5 је следећи:
- Метода означена са @БефореАлл извршава се једном на почетку класе.
- Метода означена са @БефореЕацх се извршава пре почетка Тестцасе 1.
- Метода Тестцасе1 означена са @Тест је тестцасе у класи.
- Метода означена са @АфтерЕацх ради након што Тестцасе 1 доврши извршење.
- Метода означена са @БефореЕацх се извршава пре почетка Тестцасе 2.
- Метода Тестцасе2 означена са @Тест је тестцасе у класи.
- Метода означена са @АфтерЕацх се покреће након што Тестцасе 2 заврши извршење.
- Метода означена са @АфтерАлл извршава се једном на крају класе након што се изврше и тестцасе 1 и 2.
Обрада сваке напомене
У овом одељку заронимо дубоко и детаљно ћемо разумети шта ради сваки од животних циклуса повратних напомена:
@Бефоре (ЈУнит 4) / @ БефореЕацх (ЈУнит 5):
- Означена метода се извршава пре извршавања сваке методе испитивања у тест класи.
- Ова напомена се може користити када желите да се ресурси или подаци о тестирању поставе непосредно пре покретања сваког теста.
- На пример, ако постоји 5 тестова у ЈУнит тест класи, тада се метода означена са @ Бефоре / @ БефореЕацх извршава 5 пута пре сваког извршења тест случаја.
@Афтер (ЈУнит 4) / @ АфтерЕацх (ЈУнит 5):
- Означена метода се извршава након извршавања сваке тест методе у тест класи.
- Ова напомена се може користити када желите да објавите коришћене ресурсе или податке о тестирању након сваког покретања тест случаја.
- На пример, ако постоји 5 Тестцасес у ЈУнит тест класи, тада се метода означена са @ Афтер / @ АфтерЕацх извршава 5 пута након извршења тест случајева.
@БефореЦласс (ЈУнит 4) / @ БефореАлл (ЈУнит 5):
- Означена метода се извршава пре него што се изврше све методе испитивања у тест класи.
- Ова напомена се може користити када желите да поставите ресурсе или тест податке на нивоу класе.
- Како је ова метода означена са @ БефореЦласс / @ БефореАлл се извршава само једном за тест класу и копија методе се дели у класи, а метода мора бити наведена статички.
- На пример, ако постоји 5 Тестцасес у ЈУнит тест класи, тада се метод означен са @ БефореЦласс / @ БефореАлл извршава једном по тест класи пре него што било који тестцасе покрене.
@АфтерЦласс (ЈУнит 4) / @ АфтерАлл (ЈУнит 5):
- Означена метода се извршава након извршавања свих метода испитивања у тест класи.
- Ова напомена се може користити када желите да објавите коришћене ресурсе или податке о тестирању на нивоу класе.
- Како је овај метод означен са @ АфтерЦласс / @ АфтерАлл се извршава само једном за тест класу и копија методе се дели у класи, мора се навести метода статички.
- На пример, ако постоји 5 Тестцасес у ЈУнит тест класи, тада се метода означена са @ АфтерЦласс / @ АфтерАлл извршава једном по тестној класи након завршетка свих тест случајева.
@Тест (ЈУНИТ 4 & ЈУНИТ 5):
- Ознака @Тест уобичајена је за ЈУнит 4, као и за ЈУнит 5. Означене методе представљају тест случајеве у класи.
- У класи ЈУнит може бити више метода, свака означена са @Тест. То имплицира да класа може имати више тест случајева.
- Постоје различити атрибути или параметри за тестирање који би се могао проследити. Можете да додате принудно време чекања за тест случај или да додате изузетак. Ово ће бити детаљно обрађено у посебном упутству.
- Означена метода не може бити приватна или статична и не може вратити никакву вредност.
- Метода @Тест мора бити проглашена јавном у ЈУнит 4, док Јунит 5 дозвољава тест цасе дефинисан без модификатора приступа „публиц“, јер подразумевано сматра да „нема модификатора приступа“ као „публиц“.
Основни пример ЈУНИТ теста
Основни ЈУНИТ 4 пример за напомене @БефореЦласс, @Бефоре, @Тест, @Афтер и @АфтерЦласс приказан је кроз код са својим објашњењем у нашем ранијем водичу о „Тест Фиктурес“.
Погледајмо основно ЈУНИТ 5 Програм за демонстрацију рада напомена о повратном позиву у животном циклусу @БефореАлл, @БефореЕацх, @Тест, @АфтерЕацх и @АфтерАлл.
Код за ЈУнит5Програм.јава:
public class JUnit5Program { @BeforeAll public static void preClass() { System.out.println('@BeforeAll – the annotated method runs once before all other methods execute'); } @BeforeEach public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('@BeforeEach – the annotated method executes before each test '); } @Test public void test_JUnit1() { System.out.println('@Test – this is test case 1'); } @Test public void test_JUnit2() { System.out.println('@Test – this is test case 2'); } @Test public void test_JUnit3() { System.out.println('@Test – this is test case 3'); } @AfterEach public void tearDown() { System.out.println('@AfterEach – the annotated method executes after each test executes'); System.out.println('_______________________________________________________
'); } @AfterAll public static void postClass() { System.out.println('@AfterAll – the annotated method runs once after all other methods execute'); } }
По извршењу датотеке класе, доњи резултат се приказује у прозору конзоле.
Додатне напомене - ЈУнит 4 вс ЈУнит 5
Постоји много додатних напомена које се користе у одређене сврхе. Видећемо листу напомена за ЈУнит 4 у односу на ЈУнит 5 и сврху која му служи укратко.
У нашим предстојећим водичима наћи ћете детаљан водич о свакој од ових напомена.
4. ЈУНИТ БИЉЕШКЕ | 5. ЈУНИТ БИЉЕШКЕ | Опис укратко |
---|---|---|
@ФикМетходОрдер | @ТестМетходОрдер & @Ордер | 1. Ове напомене омогућавају кориснику да изабере редослед извршавања метода у тест класи |
@Руле & @ЦлассРуле | @ЕктендВитх | 1. @Руле - Напомена је проширена из класе ТестРуле која помаже у примени одређених правила на тест случајевима. 2. На пример: стварање привремене фасцикле пре извршења тест случаја и брисање директоријума након извршења може се поставити путем правила. 3. @Руле је доступан само у ЈУнит 4 који се може користити у ЈУнит 5 Винтаге, међутим, @ЕктендВитх пружа ближу функцију за ЈУнит 5 4. Слично томе, глобално временско ограничење може се поставити помоћу @Руле. |
НА | @ТестФацтори | 1. Ова напомена подржана само од стране ЈУнит 5 и помаже у креирању динамичких или рунтиме тестова. 2. Враћа ток података као прикупљање и не може користити напомене повратног позива животног циклуса |
НА | @Угнездио | 1. Ову напомену подржава само ЈУнит Јупитер 2.Помаже нам у стварању угнежђених тест случајева. 3.На пример, класа 1 са тестцасе 1 може имати @ угнежђену Цласс 2 са тестцасе 2. То чини тестцасе 2 угнежђеним тестцасеом за тестцасе 1. Стога се тестцасе 1 извршава, а затим тестцасе 2 извршава. 4. Ако се @Нестед напомена не користи, угнежђена класа се неће извршити. |
@Категорија | @Таг | 1. Ова напомена помаже у означавању и филтрирању тестова 2. Можете укључити тестове за извршење или их искључити филтрирањем на основу категорија у које спадају. |
@РунВитх (Параметеризед.цласс) @ Параметеризед.Параметерс | @ПараметеризедТест и @ВалуеСоурце | 1. Ова напомена се користи за вишеструко покретање методе са варијацијама тест података. 2.ЈУнит 4 подржава @РунВитх и @Параметерс док ЈУнит 5 Јупитер подржава @ПараметеризедТест са @ВалуеСоурце |
@Показати име | 1. Корисничко дефинисано име може се дати методи или класи испитивања у сврху приказивања. | |
@ТестИнстанце (ЛифеЦицле.ПЕР_ЦЛАСС) и @ТестИнстанце (ЛифеЦицле.ПЕР_МЕТХОД) | 1. ЈУнит 5 подржава конфигурацију животног циклуса тестова. 2. И ЈУнит 4 и 5 следе подразумевани повратни позив за животни циклус методе, док се такође може извршити конфигурација по класи. |
Референце => ЈУНИТ 4 , ЈУНИТ 5
Закључак
- Сазнали смо о напоменама о повратном позиву током животног циклуса и секвенцијалном току рада у којем се методе испитивања извршавају на основу њихових напомена.
- Сазнали смо напомене које се користе за ЈУнит 4 и напомене за ЈУнит 5.
- Такође смо сазнали о додатним напоменама које ЈУнит 4 подржава и онима које подржавају само ЈУнит 5.
=> Овде припазите на једноставну серију тренинга ЈУнит.
Препоручено читање
- Шта је учвршћење ЈУнит теста: Водич за примере ЈУнит 4
- ЈУнит тестови: Како писати ЈУнит тест случајеве са примерима
- Водич за ЈУнит за почетнике - шта је ЈУнит тестирање
- Преузмите, инсталирајте и конфигуришите ЈУнит у програму Ецлипсе
- Више начина за извршавање ЈУнит тестова
- Увод у ЈУнит Фрамеворк и његову употребу у сценаријуму Селениум - Водич за селен # 11
- Тајни списак у низ и друге колекције у Јави
- Методе Јава листе - Листа сортирања, Садржи, Додај листу, Уклони листу