模拟对象问题

本文关键字:问题 对象 模拟 | 更新日期: 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() 返回空值。

这是因为checkComponentr在 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();