有些人可以解释我何时应该使用Rhino Mocks LastCall以及何时应该使用Expect.Call。 我收集了Expect.Call只是一个封装器中的LastCall。另外我假设在处理Rhino Mocks中的返回值时应该使用Expect.Call。
答案 0 :(得分:2)
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()
)。