Я разработал приложение, которое использует шаблон репозитория, а затем отдельный сервисный уровень, такой как этот:
public class RegistrationService: IRegistrationService
{
public void Register(User user)
{
IRepository<User> userRepository = new UserRepository();
// add user, etc
}
}
Как видите, я создаю свой репозиторий внутри метода Register. Теперь, когда я хочу написать несколько модульных тестов, я не могу добраться до этого и заменить его поддельным репозиторием, не так ли?
Я не хочу добавлять репозиторий в качестве переменной класса (и задавать его через конструктор), потому что я думаю, что это сделает мой код «вонючим» (не все репозитории нужны для всех методов, и мне не нужен вызов слой, чтобы знать о репозиториях и т. д.).
Предложения?