2011-02-15 29 views
1

我正在使用Rhino Mocks,我不確定如何模擬需要lambda表達式的調用。這裏的情況:如何讓RhinoMock正確預期Lambda表達式

實際方法:

public void MyMethod (int subtestId) { 
var interview = _repository.FindOne(t => t.Survey.Subtests.SingleOrDefault(x => x.Id == subtestId) != null); 
...content elided... 
} 

模擬嘗試:

var interview = new Interview(); 
_repository.Expect(r => r.FindOne(t => t.Survey.Subtests.SingleOrDefault(x => x.Id == subtestId) != null)).Return(interview); 

var viewModelRetrieved = _service.MyMethod(subtestId); 

當我運行這一點,並逐步完成,在變種的MyMethod採訪被設置爲null。 subtestId值是正確的。

是否有另一種方式做到這一點?

回答

-3

這也許不是確切的答案,但什麼結束了,我的工作是使用IgnoreArguments()像這樣:

var interview = new Interview(); 
    _repository 
.Expect(r => r 
     .FindOne(t => t.Survey.Subtests.SingleOrDefault(x => x.Id == subtestId) != null)) 
.IgnoreArguments() 
.Return(interview); 

    var viewModelRetrieved = _service.MyMethod(subtestId);