有人可以解释什么时候应该使用 Rhino Mocks LastCall 以及什么时候应该使用 Expect.Call。我收集到 Expect.Call 只是包装器中的 LastCall。我还假设在 Rhino Mocks 中处理返回值时应该使用 Expect.Call。
问问题
543 次
1 回答
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 mocking 框架的方法,因为mocked 方法没有返回值。Expect.Call()
要求返回类型。为了让您作为程序员指定 Rhino 模拟行为(例如IgnoreArguments()
),他们提供了一个静态类LastCall
。
这样你仍然可以IgnoreArguments
使用 void 方法。或指定您希望它重复多次 ( LastCall.Repeat.Any()
)。
于 2013-02-03T20:12:52.823 回答