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