Как написать модульный тест на Golang?

Kak Napisat Modul Nyj Test Na Golang



Если вы разработчик Go, вы знаете, насколько важно тестирование для обеспечения качества вашего кода. Письмо модульные тесты — неотъемлемая часть процесса разработки, и она может помочь вам обнаружить ошибки на ранней стадии, сэкономив ваше время и деньги в долгосрочной перспективе. В этой статье мы поговорим о том, как написать модульные тесты в Голанге.

Что такое модульное тестирование?

Первый шаг – понять, что модульное тестирование означает. Модульное тестирование относится к процессу тестирования небольших блоков кода или модулей, чтобы убедиться, что каждый из них работает должным образом. Модульное тестирование используется для устранения проблем из кода, повышения стабильности кода и обеспечения корректности при обновлении кода. Начальным этапом тестирования программного обеспечения является модульный тест , за которым следуют тест пользовательского интерфейса и интеграционный тест.

Пакет тестирования

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







Пример программы для тестирования

Нам нужен код для анализа наших тестов, прежде чем мы сможем написать что-либо. модульные тесты . Мы создадим небольшую программу, которая складывает два числа.



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

Импортировать (
'ФМТ'
)
funcДобавить ( а инт , б инт ) инт {
возвращаться а + б
}

основная функция ( ) {
ФМТ. Распечатать ( Добавлять ( 2 , 3 ) )
}

Приведенный выше код определяет Добавлять() функция, которая складывает два числа, а и б , поскольку вводит и выводит результат в виде целого числа. Сложение чисел 2 и 3 — это все, что делает основная функция перед печатью результата.







Соглашение о написании модульных тестов на ходу

Каждый проект Go должен иметь отдельный тестовый файл, содержащий все тесты для этого проекта. Файл должен иметь то же имя, что и тестируемый файл, и должен иметь _test.go добавляется в конец имени файла. Например, если мы хотим протестировать файл с именем калькулятор.go , мы должны назвать наш тестовый файл калькулятор_test.go .

Это стандартная практика для Перейти к тестированию файлов располагаться в том же пакете или каталоге, что и код, который они оценивают. Когда вы используете команду go build, компилятор не создает эти файлы, поэтому вам не нужно беспокоиться об их отображении в развертываниях.



Чтобы написать модульный тест в Go нам нужно использовать тестирование упаковка. Мы можем начать каждую тестовую функцию со слова Тест а затем добавить описание того, что мы хотим протестировать. Например, Тестовое дополнение или ТестВычитание . Затем мы можем написать тестовый код, который проверяет, возвращает ли тестируемая функция ожидаемые результаты.

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

Как написать тестовый код?

Когда дело доходит до написания модульных тестов на Go, важно начать с указания пакета, который вы хотите протестировать. После импорта пакета тестирования вы можете получить доступ к различным типам и методам, экспортируемым пакетом, включая тестирование.T тип. Затем сама логика тестирования записывается в функции, которая начинается с ключевого слова 'Тест' за которым следует описательное имя, например ТестДобавить() . В эту функцию можно включить код теста и любые утверждения, необходимые для проверки ожидаемого поведения.

Подводя итог, характеристики теста в Go следующие:

  • Единственным обязательным параметром является т *тестирование.Т
  • Функция тестирования начинается со слова Test, за которым следует слово или фраза, начинающаяся с заглавной буквы.
  • Чтобы указать на сбой, функция тестирования должна вызвать либо t.Errorf или т. Неудача, а для предоставления дополнительной отладочной информации, не вызывая сбоев, можно использовать t.Log.
  • Чтобы доставлять безотказную отладочную информацию, используйте t.Log.
  • Тесты хранятся в файлах с именем foo_test.go , например, math_test.go .

Закройте файл после его сохранения.

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

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

funcTestAdd ( т * тестирование. Т ) {
результат '=' Добавлять ( 2 , 3 )
если результат '=' 5 {
т. Ошибкаf ( 'Добавить(2, 3) = %d; хочу 5' , результат )
}
}

Добавлять() функционирование проверяется ТестДобавить() функция, которая определяется в этом тесте. Он использует числа 2 и 3 для вызова Add, а затем подтверждает, что результат равен 5. Если результат меньше 5, печатается сообщение об ошибке. t.Errorf() вызывается.

Наконец, важно знать, что в Go есть встроенный инструмент тестирования под названием иди тестируй. Этот инструмент запускает все тесты в проекте и предоставляет отчет о результатах. Перейти тест необходимо ввести в терминале, находясь в каталоге проекта, чтобы запустить тесты. В результате будут запущены все тесты в этом каталоге.

< сильный > пройти тест < тест - файл - имя > _тест. идти сильный >

Результаты модульного теста

Вывод покажет вам тестовые функции, которые прошли, не прошли или были пропущены.

ПРОЙДИТЕ или ОК означает, что код работает по назначению. Вы получите НЕУДАЧА если тест не пройден.

_test.go суффикс — единственный, который подкоманда go test проверяет в файлах. После этого go test ищет в этих файлах любые специальные функции, такие как func ТестХхх и ряд других. Go test правильно строит и вызывает эти функции, выполняет их, собирает и сообщает о результатах и, наконец, очищает все во временном основном пакете.

Последний шаг — интегрировать ваши тесты в рабочий процесс разработки. Лучше всего запускать тесты каждый раз, когда вы фиксируете свой код в репозитории. Интеграция ваших тестов в ваш рабочий процесс разработки гарантирует, что ваш код постоянно тестируется, а любые проблемы решаются до развертывания.

Заключение

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