У нормалном сценарију, кад год препознате било какву грешку током извођења теста, зауставили бисте тест, исправили грешку и поново покренули тест.
Али ЈУнит има мало другачији приступ. Са ЈУнит сакупљачем грешака и даље можете наставити са извршавањем теста чак и након што се пронађе проблем или тест не успе. Сакупљач грешака прикупља све објекте грешака и пријављује их само једном након завршетка теста.
У овом упутству ћете научити-
- Шта је сакупљач грешака у ЈУнит-у?
- Шта је @Руле у јУнит?
- Пример коришћења ЕррорЦоллецтор
- Предности ЈУнит ЕррорЦоллецтор
Зашто користити колектор грешака?
Док пишете тестну скрипту, желите да извршите све тестове чак и ако било која линија кода закаже због мрежне грешке, неуспеха тврдње или било ког другог разлога. У тој ситуацији и даље можете да извршавате тест скрипту користећи посебну функцију коју пружа ЈУнит познату као „сакупљач грешака“.
За ово ЈУнит користи напомену @Руле која се користи за креирање објекта сакупљача грешака. Једном када се креира објекат за сакупљач грешака, можете лако додати све грешке у објекат помоћу методе аддЕррор (грешка која се може бацити). Као што знате, тај Тхровабле је супер класа класе изузетака и грешака у Јави. Када на овај начин додате грешке, ове грешке ће бити евидентиране у резултату ЈУнит теста.
Предност додавања свих грешака у колектор грешака је у томе што можете све грешке одједном проверити. Такође, ако скрипта не успије у средини, и даље може да је извршава
Напомена : У случају коришћења једноставног блока за потврду или покушај / улов, употреба методе сакупљача грешака неће бити могућа.
Пример кода
Да бисте разумели више о колектору грешака, погледајте доњи пример кода који показује како се креира објекат колектора грешака и додају све грешке у том објекту за праћење проблема:
пакет гуру99.јунит;импорт орг.јунит.Руле;импорт орг.јунит.Тест;импорт орг.јунит.рулес.ЕррорЦоллецтор;јавна класа ЕррорЦоллецторЕкампле {@Рулејавни ЕррорЦоллецтор цоллецтор = нови ЕррорЦоллецтор ();@Тестпример јавне празнине () {цоллецтор.аддЕррор (нев Тхровабле („У првом реду је грешка“));цоллецтор.аддЕррор (нев Тхровабле („У другом реду је грешка)));цоллецтор.цхецкТхат (гетРесултс (),нот (цонтаинсСтринг ("овде је грешка")));// извршиће се сви редови кода и на крају ће се извршити комбиновани кварбити пријављени.}}
Шта је @Руле у јУнит?
ЈУнит пружа посебну врсту руковања тестовима, тест случајем или тест пакетом помоћу анотације @руле . Користећи @руле, лако можете додати или редефинисати понашање теста.
Постоји неколико уграђених правила која пружа ЈУнит АПИ које тестер може да користи, или чак можете и сами да напишете наше правило.
Погледајте доњи ред кода, који показује како користити @руле напомену заједно са колектором грешака:
@Рулејавни ЕррорЦоллецтор цоллецтор = нови ЕррорЦоллецтор ();
Пример коришћења ЕррорЦоллецтор
Да бисмо разумели сакупљач грешака, креирајмо класу и правило за прикупљање свих грешака. Овде ћете додати све грешке помоћу аддЕррор (бацање).
Погледајте доњи код који једноставно креира правило које није ништа друго него стварање „Објекта колектора грешака“. Који се даље користи за додавање свих грешака како би се проблем пријавио на крају:
ЕррорЦоллецторЕкампле.јава
пакет гуру99.јунит;импорт орг.јунит.Ассерт;импорт орг.јунит.Руле;импорт орг.јунит.Тест;импорт орг.јунит.рулес.ЕррорЦоллецтор;јавна класа ЕррорЦоллецторЕкампле {@Рулејавни ЕррорЦоллецтор цоллецтор = нови ЕррорЦоллецтор ();@Тестпример јавне празнине () {цоллецтор.аддЕррор (нев Тхровабле („У првом реду је грешка“));цоллецтор.аддЕррор (нев Тхровабле („У другом реду је грешка)));Систем.оут.принтлн ("Здраво");покушати {Ассерт.ассертТруе ("А" == "Б");} цатцх (Тхровабле т) {цоллецтор.аддЕррор (т);}Систем.оут.принтлн ("Свет !!!!");}}
ТестРуннер.јава
Хајде да додамо горњу класу теста у тест тркач и извршимо је да бисмо прикупили све грешке. Погледајте доњи код:
пакет гуру99.јунит;импорт орг.јунит.руннер.ЈУнитЦоре;импорт орг.јунит.руннер.Ресулт;импорт орг.јунит.руннер.нотифицатион.Фаилуре;јавна класа ТестРуннер {јавна статичка воид главна (Стринг [] аргс) {Резултат резултата = ЈУнитЦоре.рунЦлассес (ЕррорЦоллецторЕкампле.цласс);фор (неуспех неуспеха: ресулт.гетФаилурес ()) {Систем.оут.принтлн (фаилуре.тоСтринг ());}Систем.оут.принтлн ("Резултат ==" + ресулт.васСуццессфул ());}}
Излаз:
Погледајте траг грешке који прати све грешке на једном месту:
Предности ЈУнит ЕррорЦоллецтор
Можете користити тврдњу ЈУнит за функционалну или ГУИ проверу, нпр
- ассертЕкуалс (Стринг порука, Објект очекиван, Објект стварни) који упоређују да су два објекта једнака.
- Слично томе, ассертТруе (логички услов) тврди да је услов истинит.
Користећи тврдњу, тест валидације постаје лак. Али једно главно питање је да ће се извршавање теста зауставити чак и ако поједина тврдња не успе.
Континуитет тестирања и руковање опоравком пресудни су за успех аутоматизације. Сакупљач грешака је најбољи начин за руковање таквом врстом сценарија.
Резиме :
- Јунит сакупљач грешака омогућава наставак теста и након проналаска првог издања, а тест не успе на крају
- Сакупљач грешака прикупља све објекте грешака и извештава само о њима, након свега извршења теста
- Предност додавања свих грешака у колектор грешака је у томе што можете све грешке одједном проверити
- Сакупљач грешака једноставно додаје грешке помоћу методе аддЕррор (грешка која се може бацити) коју пружа ЕррорЦоллецтор.јава.