Простое руководство по модульному тестированию конечных точек RESTful API в Go
Продолжая улучшать базовую настройку в разделе Создание API в Go Beyond Hello World, мы рассмотрим подход к модульному тестированию конечных точек API.
Потребуется небольшой рефакторинг базового проекта, чтобы сделать модульный тест кода удобным, однако он должен быть интуитивно понятным.
TL;DR
Исходный код: https://github.com/oliversavio/youtube-vid-code/tree/unit-test/go-api-starter
Смотреть видео, а не читать?
Бонус: я добавил несколько прикольных мелодий!!
Инкапсулировать создание сервера
Создайте структуру для приложения волокна, она также может содержать службы и действовать как механизм внедрения зависимостей.
Создание и тестирование сервера
Теперь в модульных тестах мы можем создать экземпляр сервера и предоставить ему необходимые фиктивные реализации службы. Как видно из примера в коде, файбер дает нам возможность вызывать метод Тест, который принимает http-запрос и возвращает ответ. Приведенный ниже фрагмент кода представляет собой слегка измененную версию примеров, предоставленных fiber.
Определение и имитация сервисного слоя
Определение службы как интерфейса позволяет нам использовать фиктивные реализации во время модульного тестирования.
Настройка и модульное тестирование с таким подходом гарантируют, что мы протестируем нашу конфигурацию из
Конечная точка -> Маршрут -> Обработчик -> Сервисный уровень
Ссылки и ссылки
- Примеры GoFiber
https://github.com/gofiber/recipes - Часть 1. Создание API в Go Beyond Hello World
https://medium.com/code-uncomplicated/building-apis-in-go-beyond-hello-world-5d501d6403de - Часть 3. Как настроить мониторинг API с помощью Prometheus и Grafana
https://www.youtube.com/watch?v=pP2DKCKR4CQ - Исходный код
https://github.com/oliversavio/youtube-vid-code/tree/unit-test/go-api-starter