mirror of
https://github.com/3ybactuk/marketplace-go-service-project.git
synced 2025-10-30 14:03:45 +03:00
[hw-2] add tests, coverage, benchmarks
This commit is contained in:
33
docs/homework-2/README.md
Normal file
33
docs/homework-2/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Домашнее задание по модулю "Тестирование в 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 (проверка)
|
||||
Reference in New Issue
Block a user