可以解释一下我什么时候应该使用 Rhino Mocks LastCall 以及什么时候应该使用 Expect.Call。 我发现 Expect.Call 只是包装器中的 LastCall。另外,我假设在处理 Rhino Mocks 中的返回值时应该使用 Expect.Call。
最佳答案
using (mocks.Record())
{
myMock.AVeryMeaningFullMethodThatDoesNotReturnAValue("a to be ignored parameter");
LastCall.IgnoreArguments();
Expect.Call(myMock.AnotherMethodThatDoesReturnAValue()).IgnoreArguments().Returns("barney");
}
首先进行一些介绍。在记录
模式下,您可以指定“模拟”环境的行为。您可以执行此操作,但只需指定您期望的方法:
myMock.AVeryMeaningFullMethodThatDoesNotReturnAValue("a to be ignored parameter");
或者,您可以通过 Mocking 框架来执行此操作:
Expect.Call(myMock.Do("stuff")).Return("something");
第一种情况,你不能调用Rhino模拟框架的方法,因为模拟的方法没有返回值。 Expect.Call()
需要返回类型。为了让程序员能够指定 Rhino 模拟行为(例如 IgnoreArguments()
),它们提供了一个静态类 LastCall
。
这样您仍然可以在 void 方法上IgnoreArguments
。或者指定您希望它重复多次 (LastCall.Repeat.Any()
)。
关于c# - LastCall 和 Expect.Call 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676708/