LastCall和Expect.Call有什么区别
本文关键字:什么 区别 Call Expect LastCall | 更新日期: 2023-09-27 17:57:11
有人可以解释一下我什么时候应该使用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");
或者,您可以通过模拟框架执行此操作:
Expect.Call(myMock.Do("stuff")).Return("something");
在第一种情况下,你不能调用 Rhino 模拟框架的方法,因为模拟方法不返回值。Expect.Call()
需要返回类型。为了允许您作为程序员指定 Rhino 模拟行为(例如 IgnoreArguments()
)它们提供了一个静态类LastCall
。
这样,您仍然可以IgnoreArguments
void 方法。或者指定您希望它重复多次 ( LastCall.Repeat.Any()
)。