2012-04-22 86 views
0

我試圖讓下面的嘲諷嘲諷對象問題

var checkComponent = MockRepository.GenerateStub<IController>(); 

checkComponent.Stub(r => r.GetSelector().Select(new Position(3,6,1))).Return(true); 

我得到的是r.GetSelector()被返回null。

有沒有辦法讓嘲笑,我想創建?

謝謝。

回答

3

我得到那r.GetSelector()返回null。

這是因爲checkComponentr在存根()調用)是不是一個真正的實現IController它基本上是一個實現IController接口RhinoMock代理對象。

有沒有辦法讓嘲笑,我想創建?

您必須指定,當你需要指定方法的期望是什麼,應在返回時GetSelector()被調用時, 使用模擬的場景。

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();