可以解释一下什么时候应该使用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");
}
首先介绍一下。在
Record
模式下,您可以指定“模拟”环境的行为。您可以执行此操作,但只需指定所需的方法即可: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/