Объяснение
Unit изолирует небольшую логику, integration проверяет взаимодействие, system — систему целиком, acceptance — выполнение пользовательского требования. Граница зависит от архитектуры и цели теста.
Задача для самостоятельного решения
Где проверять реальное SQL-ограничение уникальности?
Показать разбор ответа
В интеграционном тесте с БД. Mock repository способен подтвердить вызов метода, но не доказывает работу ограничения.