可以解释一下什么时候应该使用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/

10-12 06:52