C# 模拟对象问题
我试着做以下的嘲弄C# 模拟对象问题,c#,.net,mocking,rhino-mocks,C#,.net,Mocking,Rhino Mocks,我试着做以下的嘲弄 var checkComponent = MockRepository.GenerateStub<IController>(); checkComponent.Stub(r => r.GetSelector().Select(new Position(3,6,1))).Return(true); var checkComponent=MockRepository.generateSub(); checkComponent.Stub(r=>r.GetSel
var checkComponent = MockRepository.GenerateStub<IController>();
checkComponent.Stub(r => r.GetSelector().Select(new Position(3,6,1))).Return(true);
var checkComponent=MockRepository.generateSub();
checkComponent.Stub(r=>r.GetSelector().Select(新位置(3,6,1))).Return(true);
我发现r.GetSelector()
返回null
有没有一种方法可以让我试着去创造嘲弄
谢谢
我发现r.GetSelector()返回null
这是因为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();
var componentMock=MockRepository.GenerateMock();
var selectorMock=MockRepository.GenerateMock();
//如果需要-指定具体参数以返回true
Expect(x=>x.Select(null)).IgnoreArguments().Return(true).Repeat.Any();
Expect(x=>x.GetSelector()).Return(selectorMock).Repeat.Any();
我发现r.GetSelector()返回null
这是因为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();
var componentMock=MockRepository.GenerateMock();
var selectorMock=MockRepository.GenerateMock();
//如果需要-指定具体参数以返回true
Expect(x=>x.Select(null)).IgnoreArguments().Return(true).Repeat.Any();
Expect(x=>x.GetSelector()).Return(selectorMock).Repeat.Any();