使用Mockito间谍模拟方法而不指定确切的参数

时间:2015-06-24 10:51:54

标签: java unit-testing mocking mockito

我有一个用例,我必须测试调用内部方法的实际方法。必须嘲笑这种内在方法。例如,

Class Sample {
   boolean method(Foo foo) {
     return innerMethod(new Goo(foo));
   }
}

所以我想做以下事情。

Sample sample = Mockito.spy(new Sample());
Foo foo = new Foo();
doReturn(false).when(sample).innerMethod(new Goo(foo));

assertEquals(false, sample.method(foo));

问题是,我想,内部方法永远不会被模拟,因为参数Goo不是同一个对象。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

使用Matcher.any()方法。

doReturn(false).when(sample).innerMethod(Matcher.any(Goo.class));