【问题标题】:Is there an equivalent of the Rhino Mocks .Do() method in Moq?Moq 中是否有与 Rhino Mocks .Do() 方法等效的方法?
【发布时间】:2012-03-17 04:55:33
【问题描述】:

Moq 中是否有与 Rhino Mocks .Do() 方法等效的方法?我正在将我的 Rhino Mocks 代码转换为最小起订量,并坚持以下几点:

mockedObject
    .Expect(x => x.GetSomething())
    .Do((Func<SomeClass>)(() => new SomeClass());

这与(在 Moq 中,在 Rhino Mocks 中类似)不同:

mockedObject
    .Setup(x => x.GetSomething())
    .Return(new SomeClass());

当您在单元测试中多次调用GetSomething() 时,第一段代码将始终返回一个新实例。第二部分将始终返回相同的实例。

我想要的是让我的模拟对象(带起订量)始终返回一个新实例。所以我实际上想为我的模拟对象提供GetSomething() 方法的实现。

Using sequences 不会成功,因为我不知道GetSomething() 会被调用多少次,我对此也不感兴趣。

【问题讨论】:

    标签: moq rhino-mocks


    【解决方案1】:

    您应该能够传递 .ReturnsFunc&lt;SomeClass&gt;,就像您使用 Rhino 模拟所做的那样:

    mockedObject
        .Setup(x => x.GetSomething())
        .Returns(() => new SomeClass());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多