我正在使用Rhino mocks进行单元测试模拟对象。我们的DAL使用codesmith从.netTiers模板生成代码,该模板创建这些DataRepository类,其中包含CRUD类型事务到数据源的所有方法。在单元测试中,我试图模拟这个没有接口类用作存根的数据存储库对象。
简而言之,是否有人成功使用Rhino模拟来模拟.netTiers生成的DataRepository,从而避免了对数据源的测试数据库和实际事务的需要,最终需要将其删除?
答案 0 :(得分:2)
我一直在思考这个问题,因为没有人已经为netTiers编写了一个模拟DataRepository实现(据我所知)。
由于我对TypeMock和RhinoMocks的记录重放步骤并不太在意,我选择了更新的Moq,它会愉快地模拟DataRepository类或Service层调用自己,而且麻烦最小。 / p>
假设您使用的是.NET 3.5,我建议使用它。
答案 1 :(得分:0)
简而言之,Rhino只能模拟接口或非密封类的类型。然后,您只能存储虚拟或抽象的方法。
如果您的目标是使用模拟实现替换DataRepository,我认为您将不得不研究更高级的模拟框架,如TypeMock。
如果您控制CS模板,另一种选择是使用模板来生成模拟DataRepository实现。