mirror of
				https://github.com/3ybactuk/marketplace-go-service-project.git
				synced 2025-10-31 06:23:44 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Домашнее задание по модулю "Тестирование в 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 (проверка)
 | 
