[英]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.