我设计了一个使用存储库模式的应用程序,然后是一个单独的服务层,例如:
public class RegistrationService: IRegistrationService
{
public void Register(User user)
{
IRepository<User> userRepository = new UserRepository();
// add user, etc
}
}
如您所见,我在 Register 方法中实例化了我的存储库。现在,当我想编写一些单元测试时,我无法真正使用它并将其替换为假存储库,可以吗?
我不想将存储库添加为类变量(并通过构造函数设置它),因为我认为这会使我的代码“臭”(并非所有方法都需要所有存储库,而且我不需要调用层以了解存储库等)。
建议?