Шта су ЈУнит напомене?
ЈУНИТ АННОТАТИОНС је посебан облик синтаксичких мета-података који се могу додати изворном коду Јава ради боље читљивости и структуре кода. Варијабле, параметри, пакети, методе и класе могу бити означени. Биљешке су уведене у Јунит4, што чини Јава код читљивијим и једноставнијим. Ово је велика разлика између Јунит3 и Јунит4 у томе што је Јунит4 заснован на анотацијама.
Познавањем напомена у Јунит5, лако се може научити и применити ЈУнит тест. Испод је листа важних и често коришћених напомена:
С.бр. | Биљешке | Опис |
---|---|---|
1. | @Тест | Ова напомена је замена орг.јунит.ТестЦасе која указује на то да се јавна воид метода на коју је прикључена може извршити као тест случај. |
2 | @Пре него што | Ова напомена се користи ако желите да извршите неку наредбу као што су предуслови пре сваког тест случаја. |
3. | @Пре наставе | Ова напомена се користи ако желите да извршите неке изразе пре него што се сви тест случајеви, на пример тест веза, морају извршити пре свих тест случајева. |
4. | @После | Ова напомена се може користити ако желите извршити неке изразе након сваког Тест случаја, на пример за ресетовање променљивих, брисање привремених датотека, променљивих итд. |
5. | @После часа | Ова напомена се може користити ако желите да извршите неке изразе након свих тест случајева, нпр. Ослобађање ресурса након извршавања свих тест случајева. |
6. | @Игнорес | Ова напомена се може користити ако желите да игноришете неке изјаве током извршавања теста, на пример, онемогућавање неких тест случајева током извршавања теста. |
7. | @Тест (тимеоут = 500) | Ова напомена се може користити ако желите да поставите неко временско ограничење током извођења теста, нпр. Ако радите према неком СЛА (уговор о нивоу услуге), а тестови морају бити завршени у одређеном временском року. |
8. | @Тест (очекује се = ИллегалАргументЕкцептион.цласс) | Ова напомена се може користити ако желите да обрађујете изузетак током извршавања теста. На пример, ако желите да проверите да ли одређена метода баца наведени изузетак или не. |
У овом упутству ћете научити-
- Пример ЈУнит напомена
- ЈУнит Ассерт Цласс
- ЈУнит Тест Цасес Цласс
- Класа ЈУнит ТестРесулт
- ЈУнит Тест Суите Цласс
Пример ЈУнит напомена
Направимо класу која покрива важне ЈУнит напомене једноставним исписима и извршимо је помоћу класе тест руннер:
Корак 1) Размислите о томе да ли испод јава класе имате разне методе које су повезане са горе наведеним напоменама:
ЈунитАннотатионсЕкампле.јава
пакет гуру99.јунит;импорт статиц орг.јунит.Ассерт.ассертЕкуалс;импорт статиц орг.јунит.Ассерт.ассертФалсе;импорт јава.утил.АрраиЛист;импорт орг.јунит.Афтер;импорт орг.јунит.АфтерЦласс;импорт орг.јунит.Бефоре;импорт орг.јунит.БефореЦласс;импорт орг.јунит.Игноре;импорт орг.јунит.Тест;јавна класа ЈунитАннотатионсЕкампле {приватна листа АрраиЛист <Стринг>;@Пре наставејавна статичка празнина м1 () {Систем.оут.принтлн („Коришћење @БефореЦласс, извршено пре свих тест случајева“);}@Пре него штојавна празнина м2 () {лист = нев АрраиЛист <Стринг> ();Систем.оут.принтлн („Коришћење ознака @Бефоре, извршено пре сваког тест случаја“);}@После часајавна статичка празнина м3 () {Систем.оут.принтлн („Коришћење @АфтерЦласс, извршено након свих тест случајева“);}@Послејавна празнина м4 () {лист.цлеар ();Систем.оут.принтлн ("Коришћење @Афтер, извршено након сваког тест случаја");}@Тестјавна празнина м5 () {лист.адд ("тест");ассертФалсе (лист.исЕмпти ());ассертЕкуалс (1, лист.сизе ());}@Игноришијавна празнина м6 () {Систем.оут.принтлн ("Коришћење @Игноре, ово извршење се занемарује");}@Тест (тимеоут = 10)јавна празнина м7 () {Систем.оут.принтлн („Коришћењем @Тест (тимеоут), може се користити за наметање временског ограничења у ЈУнит4 тест случају“);}@Тест (очекује се = НоСуцхМетходЕкцептион.цласс)јавна празнина м8 () {Систем.оут.принтлн („Користећи @Тест (очекује се), провериће да ли постоји изузетак током његовог извршавања“);}}
Корак 2) хајде да креирамо класу тест руннер-а за извршење горе наведеног теста:
ТестРуннер.јава
пакет гуру99.јунит;импорт орг.јунит.руннер.ЈУнитЦоре;импорт орг.јунит.руннер.Ресулт;импорт орг.јунит.руннер.нотифицатион.Фаилуре;јавна класа ТестРуннер {јавна статичка воид главна (Стринг [] аргс) {Резултат резултата = ЈУнитЦоре.рунЦлассес (ЈунитАннотатионсЕкампле.цласс);фор (неуспех неуспеха: ресулт.гетФаилурес ()) {Систем.оут.принтлн (фаилуре.тоСтринг ());}Систем.оут.принтлн ("Резултат ==" + ресулт.васСуццессфул ());}}
Очекивани резултат
- Сви тестови ће се извршавати један по један, а сви исписи за штампу могу се видети на конзоли.
- Као што је дискутовано у горњој табели @Бефоре, @БефореЦласс [метода м1 () и м2 ()] извршиће се пре сваког, односно пре свих тест случајева.
- На исти начин @ афтер, @ афтерЦласс (метода м3 () и м4 ()) извршиће се након сваког, односно након свих тест случајева. @игноре (метода м6 ()) третираће се као игнорисање теста.
Хајде да детаљно анализирамо тест случајеве који се користе у горњој јава класи:
- Размотрите методу м5 () како је дата у наставку:
@Тестјавна празнина м5 () {лист.адд ("тест");ассертФалсе (лист.исЕмпти ());ассертЕкуалс (1, лист.сизе ());}
У горњем методу, јер додајете низ у променљиву „листа“, тако
- лист.исЕмпти () ће вратити фалсе.
- ассертФалсе (лист.исЕмпти ()) мора вратити труе.
- Као резултат, тест ће проћи .
Како сте на листу додали само један низ, тако је и величина једна.
- лист.сизе () мора вратити вредност инт као "1".
- Дакле, ассертЕкуалс (1, лист.сизе ()) мора вратити труе.
- Као резултат, тест ће проћи .
- Размотрите методу м7 () како је дата у наставку:
@Тест (тимеоут = 10)јавна празнина м7 () {Систем.оут.принтлн („Коришћењем @Тест (тимеоут), може се користити за наметање временског ограничења у ЈУнит4 тест случају“);}
Као што је горе речено, напомена @Тест (тимеоут = 10) се користи за наметање временског ограничења у тест случају.
- Размотрите методу м8 () како је дата у наставку:
@Тест (очекује се = НоСуцхМетходЕкцептион.цласс)јавна празнина м8 () {Систем.оут.принтлн („Користећи @Тест (очекује се), провериће да ли постоји изузетак током његовог извршавања“);}
Као што је горе речено, @ Тест (очекује се) ће током извршења проверити да ли постоји изузетак, па ће метода м8 () бацити „Нема таквих изузетака метода“. Као резултат, тест ће се извршити са изузетком.
Како се пролазе сви тестови, ово резултира успешним извршавањем теста.
Прави резултат
Како у горњем примеру постоје три тест случаја, сви тест примери ће се извршавати један по један. Погледајте излаз испод :
Погледајте доле изјаве за штампу које се могу видети на конзоли:
Коришћење @БефореЦласс, извршено пре свих тест случајева
Коришћење ознака @Бефоре, извршених пре сваког тест случаја
Коришћење @Афтер, извршено након сваког тест случаја
Коришћење ознака @Бефоре, извршених пре сваког тест случаја
Користећи @Тест (тимеоут), може се користити за наметање временског ограничења у тест случају ЈУнит4
Коришћење @Афтер, извршено након сваког тест случаја
Коришћење ознака @Бефоре, извршених пре сваког тест случаја
Користећи @Тест (очекује се), провериће да ли постоји изузетак током његовог извршавања
Коришћење @Афтер, извршено након сваког тест случаја
Коришћење @АфтерЦласс, извршено након свих тест случајева
ЈУнит Ассерт Цласс
Ова класа пружа гомилу метода тврђења корисних за писање тест случаја. Ако се проследе све изјаве за потврду, резултати теста су успешни. Ако било која изјава о тврдњи не успе, резултати теста нису успели.
Као што сте раније видели, доња табела описује важне методе и опис Ассерт:
С.бр. | Метод | Опис |
---|---|---|
1. | воид ассертЕкуалс (логичко очекивано, логичко стварно) | Проверава да ли су две вредности једнаке методи екуалс класе Објецт |
2 | воид ассертФалсе (логичко стање) | функционалност је да се провери да ли је услов нетачан. |
3. | воид ассертНотНулл (објектни објекат) | Функција „ассертНотНулл“ је да провери да објекат није нулл. |
4. | воид ассертНулл (објектни објекат) | Функција „ассертНулл“ је да провери да ли је објекат нулл. |
5. | воид ассертТруе (логичко стање) | Функција „ассертТруе“ је да провери да ли је услов тачан. |
6. | воид фаил () | Ако желите да избаците било коју грешку у тврдњи, имате неуспех () који увек резултира пресудом о неуспеху. |
7. | воид ассертСаме ([Стринг порука] | Функција „ассертСаме“ је да провери да ли се два објекта односе на исти објекат. |
8. | воид ассертНотСаме ([Стринг порука] | Функција „ассертНотСаме“ је да провери да се два објекта не односе на исти објекат. |
ЈУнит Тест Цасес Цласс
За покретање вишеструког теста, класа ТестЦасе доступна је у пакетима орг.јунит.ТестЦасе . Напомена @Тест говори ЈУнит-у да се овај јавни метод воид (Тест Цасе овде) на који је прикључен може покренути као тест случај.
Испод табеле су приказане неке важне методе доступне у класи орг.јунит.ТестЦасе :
С.бр. | Метод | Опис |
---|---|---|
1. | инт цоунтТестЦасес () | Ова метода се користи за бројање броја тест случајева извршених методом рун (ТестРесулт тр) . |
2 | ТестРесулт цреатеРесулт () | Ова метода се користи за стварање објекта ТестРесулт . |
3. | Стринг гетНаме () | Ова метода враћа низ који није ништа друго до ТестЦасе . |
4. | ТестРесулт рун () | Овом методом се извршава тест који враћа објект ТестРесулт |
5. | воид рун (ТестРесулт резултат) | Ова метода се користи за извршавање теста који има ТестРесулт објекат који не враћа ништа. |
6. | воид сетНаме (име низа) | Овом методом се поставља име ТестЦасе. |
7. | воид сетУп () | Овај метод се користи за писање кода удруживања ресурса. нпр. Стварање везе са базом података. |
8. | воид теарДовн () | Овај метод се користи за писање кода издања ресурса. нпр. Ослободити везу са базом података након извршавања трансакционе операције. |
Класа ЈУнит ТестРесулт
Када извршите тест, он враћа резултат (у облику објекта ТестРесулт ). Овај објект ТестРесулт може се користити за анализу резултујућег објекта. Овај резултат теста може бити неуспешан или успешан. Погледајте доњу табелу за важне методе коришћене у класи орг.јунит.ТестРесулт:С.бр. | Метод | Опис |
---|---|---|
1. | воид аддЕррор (Тест тест, Тхровабле т) | Овај метод се користи ако је потребно додати грешку у тест. |
2 | воид аддФаилуре (тест теста, АссертионФаиледЕррор т) | Овај метод се користи ако вам је потребно додати неуспех на листу неуспеха. |
3. | воид ендТест (тест тест) | Ова метода се користи за обавештавање да је тест извршен (завршен) |
4. | инт еррорЦоунт () | Овај метод се користи за откривање грешке током извршавања теста. |
5. | Грешке у набрајању <ТестФаилуре> () | Овај метод једноставно враћа колекцију (овде набрајање) грешака. |
6. | инт фаилуреЦоунт () | Ова метода се користи за добијање броја грешака откривених током извођења теста. |
7. | воид рун (ТестЦасе тест) | Ова метода се користи за извршавање тест случаја. |
8. | инт рунЦоунт () | Ова метода једноставно броји извршени тест. |
9. | воид стартТест (тест тест) | Овом методом се обавештава да је тест покренут. |
10. | воид стоп () | Ова метода се користи за пробно заустављање вожње. |
ЈУнит Тест Суите Цласс
Ако желите да извршите више тестова по одређеном редоследу, то можете учинити комбиновањем свих тестова на једном месту. Ово место се назива тестним апартманима.
Погледајте доњу табелу за важне методе коришћене у класи орг.јунит.ТестСуите :
С.бр. | Метод | Опис |
---|---|---|
1. | воид аддТест (тест тест) | Ова метода се користи ако желите да додате тест у пакет. |
2 | воид аддТестСуите (Цласс ектендс ТестЦасе> тестЦласс) | Овај метод се користи ако желите да одредите класу док додајете тест у пакет. |
3. | инт цоунтТестЦасес () | Ова метода се користи ако желите да избројите број тест случајева. |
4. | Стринг гетНаме () | Ова метода се користи за добијање имена скупа тестова. |
5. | воид рун (ТестРесулт резултат) | Ова метода се користи за извршавање теста и прикупљање резултата теста у објекту ТестРесулт . |
6. | воид сетНаме (име низа) | Овом методом се поставља име ТестСуите . |
7. | Тест тестАт (инт индекс) | Ова метода се користи ако желите да вратите тест са датим индексом. |
8. | инт тестЦоунт () | Овај метод се користи ако желите да вратите одређени број тестова у пакету. |
9. | упозорење статичког теста (ниска порука) | Ова метода враћа тест који неће успети и евидентира поруку упозорења. |
Резиме:
- ЈУнит пружа преносни АПИ, који пружа све важне класе и напомене корисне за писање јединичног теста.
- Часови који су врло корисни током писања тест случаја
- орг.јунит.Ассерт
- орг.јунит.ТестЦасе
- орг.јунит.ТестРесулт
- орг.јунит.ТестСуите
- списак важних и често коришћених напомена
@Пре него што
@Пре наставе
@После
@После часа
@Тест
@Игнориши