2011-02-15 34 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);