模拟对象问题
本文关键字:问题 对象 模拟 | 更新日期: 2023-09-27 18:31:58
我试图进行以下嘲笑
var checkComponent = MockRepository.GenerateStub<IController>();
checkComponent.Stub(r => r.GetSelector().Select(new Position(3,6,1))).Return(true);
我得到r.GetSelector()
返回空值。
有没有办法嘲笑我正在尝试创造的?
谢谢。
我得到 r.GetSelector() 返回空值。
这是因为checkComponent
(r
在 Stub() 调用中)不是IController
的真正实现,它基本上是实现IController
接口的 RhinoMock 代理对象。
有没有办法让我尝试创造的嘲笑?
您必须指定调用 GetSelector()
时应返回的内容,在需要指定对方法的期望的方案中使用 Mock。
var componentMock = MockRepository.GenerateMock<IController>();
var selectorMock = MockRepository.GenerateMock<ISelector>();
// if you need - specify concrete arguments to return true
selectorMock.Expect(x => x.Select(null)).IgnoreArguments().Return(true).Repeat.Any();
componentMock.Expect(x => x.GetSelector()).Return(selectorMock).Repeat.Any();