假设我在SqlUserRepository中获得了以下代码:
var user = from u in NHibernateLinqContext.Linq<User>() ...
我想要的是为我的FakeuserRepository提供类似的上下文
var user = from u in FakeLinqContext.Linq<User>() ...
就像那样,我将能够在我的FakeUserRepository的SqlUserRespository中使用相同的逻辑。但是,我不知道Linq上下文如何工作以及我如何能够为我的FakeUserRepository创建一个。
理想情况下,我希望通过示例,我的AnythingUserRepository
在构造函数参数中获取上下文。
示例:
SqlUserRepository() : base(NHibernateLinqcontext)
FakeUserRepository() : base(FakeLinqcontext)
知道如何实现这一目标吗?
答案 0 :(得分:1)
您可以通过为其提供适当的构造函数来允许将NHibernateLinqContext依赖项注入到SqlUserRepository中,例如
public SqlUserRepository(NHibernateLinqContext context)
{
// ...
}
如果你想对你的SqlUserRepository进行单元测试,那么你可以为你的目标构造提供一个模拟的NHibernateLinqContext。
如果要对使用SqlUserRepository的类进行单元测试,那么您只需模拟SqlUserRepository即可。我不确定你为什么需要一个具体的FakeUserRepository。