【问题标题】:How to ask RhinoMock to correctly expect a Lambda expression如何让 RhinoMock 正确地期待 Lambda 表达式
【发布时间】:2011-05-05 06:49:21
【问题描述】:

我正在使用 Rhino Mocks,但我不确定如何模拟采用 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 中的 var interview 被设置为 null。 subtestId 值正确。

还有其他方法吗?

【问题讨论】:

    标签: .net lambda rhino-mocks


    【解决方案1】:

    这可能会有所帮助,尽管它看起来不太漂亮:Rhino Mocks: Can I use Stub() when one of my parameters is Expression>?

    【讨论】:

      【解决方案2】:

      这可能不是确切的答案,但最终对我有用的是像这样使用 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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-03
        • 2021-10-28
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多