Како написати јединични тест у Голангу?

Kako Napisati Jedinicni Test U Golangu



Ако сте Го програмер, знате колико је тестирање важно за осигурање квалитета вашег кода. Писање јединични тестови је суштински део процеса развоја и може вам помоћи да рано ухватите грешке, штедећи вам време и новац на дуге стазе. У овом чланку ћемо разговарати о томе како писати јединични тестови у Голангу.

Шта је јединично тестирање?

Први корак је да схватите шта јединично тестирање значи. Јединично тестирање односи се на процес тестирања малих кодних јединица или модула како би се осигурало да свака од њих функционише како се очекује. Јединично тестирање користи се за уклањање проблема из кода, побољшање стабилности кода и осигурање исправности приликом ажурирања кода. Почетна фаза тестирања софтвера је јединични тест , након чега следи УИ тест и интеграцијски тест.

Пакет за тестирање

у Голангу, јединично тестирање се врши помоћу пакета тзв тестирање . Пакет пружа различите функције које нам омогућавају да тестирамо наш код. Го код се може аутоматски тестирати уз помоћ пакета за тестирање.







Пример програма за тестирање

Потребан нам је код за анализу наших тестова пре него што можемо да напишемо било који јединични тестови . Направићемо мали програм који додаје два броја.



пакет главни

увоз (
'фмт'
)
фунцАдд ( а инт , б инт ) инт {
повратак а + б
}

фунц маин ( ) {
фмт. Принтлн ( Додати ( 2 , 3 ) )
}

Горњи код дефинише Додати() функција, која додаје два броја, а и б , као улазе и излазе као цео број. Додавање бројева 2 и 3 је све што главна функција ради пре штампања резултата.







Конвенција писања јединичних тестова у Го

Сваки Го пројекат треба да има засебну тест датотеку која садржи све тестове за тај пројекат. Датотека треба да има исто име као датотека која се тестира и требало би да има _тест.го додато на крај назива датотеке. На пример, ако желимо да тестирамо датотеку под називом цалцулатор.го , требало би да именујемо нашу тестну датотеку цалцулатор_тест.го .

То је стандардна пракса за Идите на тестирање датотека да се налазе у истом пакету или директоријуму као и код који процењују. Када користите команду го буилд, компајлер не креира ове датотеке, тако да не морате да бринете о њиховом појављивању у примени.



За писање а јединични тест у Го, треба да користимо тестирање пакет. Сваку тестну функцију можемо започети речју Тест а затим додајте опис онога што желимо да тестирамо. На пример, ТестАддитион или ТестСубтрацтион . Затим можемо написати тестни код који проверава да ли функција коју тестирамо враћа очекиване резултате.

У Го-у, свака тестна функција треба да почне наредбом т := тестирање.Т{}. Ова изјава ствара нову тестирање објекат који можемо користити да проверимо да ли је тест прошао или није успео. Затим можемо користити т.Еррорф() функција за штампање поруке о грешци ако тест не успе.

Како написати код за тестирање?

Када је у питању писање јединичних тестова у Го-у, важно је да почнете тако што ћете навести пакет који желите да тестирате. Након увоза пакета за тестирање, можете приступити различитим типовима и методама које пакет извози, укључујући тестирање.Т тип. Сама логика тестирања је тада написана у функцији која почиње кључном речи 'Тест' праћено описним именом, као нпр ТестАдд() . У оквиру ове функције можете укључити код за тест и све тврдње потребне за верификацију очекиваног понашања.

Да сумирамо, карактеристике теста у Го-у су следеће:

  • Једини и једини потребни параметар је т *тестирање.Т
  • Функција тестирања почиње речју Тест, а затим следи реч или фраза која почиње великим словом.
  • Да би указала на грешку, функција тестирања треба да позове било који т.Еррорф или т.Фаил, и за пружање додатних информација за отклањање грешака без изазивања грешке, може се користити т.Лог.
  • Да бисте испоручили информације за отклањање грешака које нису неуспешне, користите т.Лог.
  • Тестови се чувају у датотекама са именом фоо_тест.го , на пример, матх_тест.го .

Затворите датотеку након што је сачувате.

пакет главни

увоз (
'тестирање'
)

фунцТестАдд ( т * тестирање. Т ) {
резултат := Додати ( 2 , 3 )
ако резултат != 5 {
т. Еррорф ( „Додај(2, 3) = %д; желим 5“ , резултат )
}
}

Тхе Додати() функција је тестирана од стране ТестАдд() функција, која је дефинисана у овом тесту. Користи бројеве 2 и 3 да позове Адд, а затим потврђује да је резултат 5. Порука о грешци се штампа ако је резултат мањи од 5 када т.Еррорф() се позива.

Коначно, важно је знати да Го има уграђени алат за тестирање тзв иди тестирај. Овај алат покреће све тестове у пројекту и даје извештај о резултатима. Иди тестирај мора бити откуцано у терминалу док је у директоријуму пројекта да би се започели тестови. Као резултат ће се покренути сви тестови у том директоријуму.

< јака > иди тестирај < тест - фајл - име > _тест. иди јака >

Резултати теста јединице

Излаз ће вам показати тестне функције које су прошле, неуспешне или прескочене.

ПРОЂИ или ОК означава да код ради како је предвиђено. Добићете ФАИЛ ако тест не успе.

Тхе _тест.го суфикс је једини који поткоманда го тест проверава у датотекама. Након тога, го тест претражује те датотеке за било које посебне функције, као што је фунц ТестКскк и неколико других. Иди тестирај гради и исправно позива ове функције, извршава их, прикупља и извештава резултате и на крају чисти све у привременом главном пакету.

Последњи корак је да интегришете своје тестове у ток развоја. Најбоља пракса је да покренете своје тестове сваки пут када урезујете свој код у спремиште. Интеграција ваших тестова у ваш развојни радни ток осигурава да се ваш код континуирано тестира и да се сви проблеми решавају пре примене.

Закључак

Писање јединични тестови је кључна компонента развоја софтвера јер гарантује да је ваш код скалабилан, функционалан и ефикасан. Го библиотека за тестирање је једноставна и једноставна за коришћење. Требало би да будете у могућности да креирате Голанг јединични тестови највишег квалитета пратећи горе наведене процедуре. Не заборавите да интегришете своје тестове у свој развојни ток како бисте осигурали да се ваш код континуирано тестира и да се сви проблеми решавају пре примене.