Files
3ybactuk-marketplace-go-ser…/docs/homework-2
2025-05-31 10:47:47 +00:00
..

Домашнее задание по модулю "Тестирование в Go"

Необходимо покрыть Unit-тестами слой UseCase для всех запросов сервиса Cart. Покрыть Unit-тестами репозиторий сервиса Cart (in-memory)

Основное задание

  1. Написаны Unit-тесты слоя UseCase для каждого запроса
  2. Написаны Unit-тесты слоя Repository сервиса Cart
  3. Процент покрытия тестируемых слоев должен быть не менее 60%
  4. Использовать библиотеку minimock для создания моков (библиотека minimock — https://github.com/gojuno/minimock)
  5. В Makefile создать команду для расчета coverage

Дополнительное задание

  1. Написать два позитивных e2e теста: для хендлеров DELETE /user/<user_id>/cart/<sku_id> и GET /user/<user_id>/cart
  2. Настроить линтер для проверки цикломатической и когнитивной сложности (https://github.com/fzipp/gocyclo и https://github.com/uudashr/gocognit)
  3. Написать бенчмарк для In-memory Storage сервиса Cart (хотя бы одну операцию — добавление/удаление и т.д.)

Автоматические проверки

Ваше решение должно проходить автоматические проверки:

  • Компиляция
  • Линтер
  • Unit-тесты
  • Code coverage >40%
  • Автотесты

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

Дедлайны сдачи и проверки задания:

  • 31 мая 23:59 (сдача) / 3 июня, 23:59 (проверка)