簡體   English   中英

如何將期望中的參數傳遞給Rhino Mocks中的返回值?

[英]How to pass a parameter in an expectation to the return value in Rhino Mocks?

我想模仿這個界面:

interface IA {
  IB DoSomething(IC arg)
}

以某種方式模擬這樣的實現:

class A : IA {
    public IB DoSomething(IC arg) { return new B(arg); }
}

我怎樣才能做到這一點? 從其他類似的問題來看,它應該是這樣的:

MockRepository.GenerateMock<IA>().Expect(x => x.DoSomething(null)).IgnoreArguments().Callback<IC>(arg => new B(arg))

但我無法讓它發揮作用。 我正在使用RhinoMocks 3.6

var mock = MockRepository.GenerateMock<IA>();
mock
  .Stub(x => x.DoSomething(Arg<IC>.Is.Anything)
  // return a new instance of B each time
  .WhenCalled(call => call.ReturnValue = new B((IC)call.Arguments[0]))
  // make rhino mock validation happy
  .Return(null);

這是一個類型安全的例子:

var mockA = MockRepository.GenerateMock<IA>();
mockA
    .Stub(x => x.DoSomething(Arg<IC>.Is.Anything))
    .Do((Func<IC, IB>)(arg => new B(arg)))
    .Return(null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM