EasyMock的niceMock相当于RhinoMocks

时间:2012-01-27 14:19:32

标签: mocking rhino-mocks easymock

EasyMock框架(用于Java的模拟)具有非常聪明的方法 createNiceMock ,它是:

创建一个实现给定接口的模拟对象,默认情况下禁用顺序检查,并且模拟对象将为意外调用返回0,null或false。

我想知道Rhino Mocks框架中的一些等效方法可以用 0,null或false 进行意外调用(我在命令检查中并不感兴趣但是如果它它也会好的)

1 个答案:

答案 0 :(得分:0)

这些是dynamic mock

的特征
  

动态模拟 - 重放语义松散。通过调用DynamicMock()

创建      

松散重播语义:接受重放状态期间的所有方法调用。如果给定方法没有特殊处理设置,则返回null或零。必须调用所有预期的方法才能使对象通过验证。

在早期版本中,您必须明确创建一个:

var mocks = new MockRepository();
var service = mocks.DynamicMock<IService>();

现在,默认情况下,只要您使用MockRepository.GenerateMock<T>()方法创建模拟,就会假定模拟为动态模拟。预期电话订单也无关紧要。假设我们的期望设置如下:

var dependency = MocksRepository.GenerateMock<IDependency>();
dependency.Expect(d => d.SecondMethod());
dependency.Expect(d => d.FirstMethod());

经测试的代码如下例所示

public void DoWork()
{
    this.Dependency.FirstMethod();
    this.Dependency.SecondMethod();
    this.Dependency.ThirdMethod();
}

不会导致测试失败。顺序无关紧要,忽略意外调用并返回默认值。