Как да напиша Unit Test в Golang?

Kak Da Napisa Unit Test V Golang



Ако сте разработчик на Go, знаете колко важно е тестването за гарантиране на качеството на вашия код. Писане единици тестове е съществена част от процеса на разработка и може да ви помогне да хванете грешки на ранен етап, спестявайки ви време и пари в дългосрочен план. В тази статия ще обсъдим как да пишем единици тестове в Голанг.

Какво е Unit Testing?

Първата стъпка е да разберете какво единица тестване означава. Единично тестване се отнася до процеса на тестване на малки кодови единици или модули, за да се гарантира, че всеки от тях функционира според очакванията. Единично тестване се използва за отстраняване на проблеми от кода, подобряване на стабилността на кода и осигуряване на коректност при актуализиране на кода. Първоначалният етап от тестването на софтуера е единица тест , което е последвано от UI тест и интеграционен тест.

Пакетът за тестване

в Голанг, единица тестване се извършва с помощта на пакет, наречен тестване . Пакетът предоставя различни функции, които ни позволяват да тестваме нашия код. Go кодът може да бъде автоматично тестван с помощта на пакета за тестване.







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

Имаме нужда от код за нашите тестове, който да анализираме, преди да можем да напишем такъв единици тестове . Ще създадем малка програма, която събира две числа.



основен пакет

импортиране (
'fmt'
)
funcAdd ( а вътр , b вътр ) вътр {
връщане а + b
}

основна функция ( ) {
fmt. Println ( Добавете ( 2 , 3 ) )
}

Горният код дефинира Добавяне() функция, която събира две числа, а и b , като входове и изходи на резултата като цяло число. Добавянето на числата 2 и 3 е всичко, което основната функция прави, преди да отпечата резултата.







Конвенция за писане на модулни тестове в движение

Всеки Go проект трябва да има отделен тестов файл, който съдържа всички тестове за този проект. Файлът трябва да има същото име като файла, който се тества и трябва да има _test.go добавен в края на името на файла. Например, ако искаме да тестваме файл с име калкулатор.go , трябва да дадем име на нашия тестов файл calculator_test.go .

Това е стандартна практика за Отидете да тествате файлове да се намират в същия пакет или директория като кода, който оценяват. Когато използвате командата go build, компилаторът не създава тези файлове, така че не е нужно да се притеснявате за тяхното показване при внедрявания.



Да напиша а единица тест в Go трябва да използваме тестване пакет. Можем да започнем всяка тестова функция с думата Тест и след това добавете описание на това, което искаме да тестваме. Например, TestAddition или Пробно изваждане . След това можем да напишем тестовия код, който проверява дали функцията, която тестваме, връща очакваните резултати.

В Go всяка тестова функция трябва да започва с израза t := тестване.T{}. Това твърдение създава нов тестване обект, който можем да използваме, за да проверим дали тестът е преминал или не е преминал. След това можем да използваме t.Errorf() функция за отпечатване на съобщение за грешка, ако тестът е неуспешен.

Как да напиша кода за тестване?

Когато става въпрос за писане на модулни тестове в Go, важно е да започнете, като посочите пакета, който искате да тествате. След като импортирате пакета за тестване, можете да получите достъп до различни типове и методи, които пакетът експортира, включително тестване.Т Тип. След това самата логика на тестване се записва във функция, която започва с ключовата дума 'Тест' последвано от описателно име, като напр TestAdd() . В рамките на тази функция можете да включите кода за теста и всякакви твърдения, необходими за проверка на очакваното поведение.

За да обобщим, характеристиките на тест в Go са следните:

  • Единственият задължителен параметър е t *тестване.T
  • Функцията за тестване започва с думата Test и след това е последвана от дума или фраза, която започва с главна буква.
  • За да покаже грешка, функцията за тестване трябва да извика едно от двете t.Errorf или t.Fail, и за предоставяне на допълнителна информация за отстраняване на грешки, без да причинява повреда, може да се използва t.Log.
  • За да предоставите безотказна информация за отстраняване на грешки, използвайте t.Log.
  • Тестовете се съхраняват във файлове с име foo_test.go , например, math_test.go .

Затворете файла, след като го запазите.

основен пакет

импортиране (
'тестване'
)

funcTestAdd ( T * тестване. T ) {
резултат := Добавете ( 2 , 3 )
ако резултат != 5 {
T. Errorf ( 'Добавяне (2, 3) = %d; искам 5' , резултат )
}
}

The Добавяне() функцията е тествана от TestAdd() функция, която е дефинирана в този тест. Той използва числата 2 и 3, за да извика Add и след това потвърждава, че резултатът е 5. Отпечатва се съобщение за грешка, ако резултатът е по-малък от 5, когато t.Errorf() се извиква.

И накрая, важно е да знаете, че Go има вграден инструмент за тестване, наречен иди на тест. Този инструмент изпълнява всички тестове в проекта и предоставя отчет за резултатите. Отидете на тест трябва да се въведе в терминала, докато сте в директорията на проекта, за да стартирате тестовете. Всички тестове в тази директория ще се изпълняват като резултат.

< силен > иди на тест < тест - файл - име > _тест. отивам силен >

Резултати от Unit Test

Резултатът ще ви покаже тестовите функции, които са преминали, неуспешни или пропуснати.

PASS или OK означава, че кодът работи по предназначение. Ще получите НЕУСПЕХ ако тестът е неуспешен.

The _test.go суфиксът е единственият, за който подкомандата go test проверява във файловете. След това go test търси тези файлове за специални функции, като func TestXxx и няколко други. Go test изгражда и извиква тези функции правилно, изпълнява ги, събира и отчита резултатите и накрая изчиства всичко във временен основен пакет.

Последната стъпка е да интегрирате вашите тестове в работния процес на разработка. Най-добрата практика е да изпълнявате тестовете си всеки път, когато ангажирате кода си в хранилище. Интегрирането на вашите тестове във вашия работен процес за разработка гарантира, че вашият код е непрекъснато тестван и всички проблеми са разрешени преди внедряването.

Заключение

Писане единици тестове е ключов компонент от разработването на софтуер, защото гарантира, че вашият код е мащабируем, функционален и ефективен. Библиотеката за тестване Go е безпроблемна и лесна за използване. Трябва да можете да създадете Golang единици тестове с най-високо качество, като следвате процедурите, изброени по-горе. Не забравяйте да интегрирате тестовете си в работния процес на разработка, за да сте сигурни, че вашият код се тества непрекъснато и всички проблеми са разрешени преди внедряването.