我见过关于部分存根的this question,但它并不能告诉我需要知道什么。
我理解,如果我正在为一个类使用Moles存根(比方说,对于DataService
,我正在使用SDataService
),我可以将CallBase
属性设置为true
这样,如果没有特定方法的委托,将调用基本实现的方法。很好,但在这种情况下如何为特定方法分配委托?
如果无法做到这一点,请说我有一个接口IDataService
,我使用SIDataService
存根。我可以在这里轻松地为一个方法分配一个委托。但是,如果没有给定方法的委托,我如何告诉它在DataService
(IDataService
的实现)上调用相应的方法?
谢谢!
修改
我现在看到该方法需要在上面的第一个场景中被覆盖。我认为这不是很有意义,但事实就是如此。
那么,关注第二种情况,我是否必须创建一个Behavior
? (为什么不存在像存在痣的存根?)或者有更简单的方法吗?
答案 0 :(得分:0)
代表(弯路)设置为与鼹鼠类型相同的存根类型。例如,SIDataService.GetMemberProfile()配置为返回如下的模拟对象:
var memberMock = new Member() { Firstname="Joe", LastName="Schmoe" };
var stub = new SIDataService();
stub.GetMemberProfileMember = i => memberMock;