Статьи

Тестирование службы gRPC в Go с помощью табличных тестов

Все знают, что 100% покрытия кода не существует и не добавляет никакой добавленной стоимости. Фактически, каждый день мы действительно хотим проверить нашу бизнес-логику, интеллект нашего приложения.

В этой статье мы начнем с небольшого CLI-приложения на основе Go, у которого еще нет модульных тестов, а затем проведем несколько модульных тестов gRPC .

Давайте начнем с рассмотрения нашего приложения.

Разработка CLI в Go — это детская игра, и если вы прочитали одну из моих предыдущих статей , опубликованных на этом сайте, вы уже поняли, что это действительно так; мы можем создать приложение CLI за несколько минут :-).

Итак, я создал приложение CLI, которое обрабатывает сервер gRPC и клиент gRPC. Исходный код:  https://github.com/scraly/hello-world .

Что касается управления зависимостями, я непосредственно вовлечен в использование модулей Go. Благодаря этому вам больше не придется иметь дело с ГОПАТОМ Вы можете начать с клонирования репозитория, размещенного на GitHub (для версии Go <1.13 вы должны клонировать вне вашей GOPATH, если она у вас есть):

$ git clone https://github.com/scraly/hello-world.git

Первое, что нужно знать о нашем приложении, это то, что для облегчения жизни, для сборки, управления зависимостями, тестирования, генерации файлов и макетов, формата кода, выполнения статических тестов … мы используем magefile . Это «Make file», закодированный в Go, и это очень практично.


Вам также может понравиться:
10 советов по улучшению автоматизированного тестирования производительности внутри конвейеров CI (часть 2) .

Благодаря этому magefile нам не нужно выполнять все расширенные команды, которые позволят нам генерировать макеты, тестировать статические файлы, запускать модульные тесты и создавать наше приложение для генерации двоичного файла.

После клонирования репозитория Git я приглашаю вас выполнить следующую команду, которая позволит вам загрузить и установить необходимые инструменты:

$ go run mage.go -d tools

И это все! Нет необходимости покупать инструменты, размещенные в 50 репозиториях на GitHub или curl, и устанавливать их. С magefile вы получите все полезные двоичные файлы, которые позволят вам создавать, запускать линтеры, выполнять тестовые модули, проверять лицензии, генерировать макеты и т. Д.

Единственное, что нужно сделать сейчас, это сделать полную сборку нашего приложения:


Оболочка