Can Mockito stub a method without regard to the argument?
我正在尝试使用Mockito测试一些遗留代码。
我想在生产中使用如下的
1 | foo = fooDao.getBar(new Bazoo()); |
我可以写:
1 | when(fooDao.getBar(new Bazoo())).thenReturn(myFoo); |
但显而易见的问题是,
如果我能以一种不管参数的方式返回
1 2 3 4 5 | when( fooDao.getBar( any(Bazoo.class) ) ).thenReturn(myFoo); |
或(避免
1 2 3 4 5 | when( fooDao.getBar( (Bazoo)notNull() ) ).thenReturn(myFoo); |
不要忘记导入匹配器(许多其他可用):
对于Mockito 2.1.0和更新版本:
1 | import static org.mockito.ArgumentMatchers.*; |
对于旧版本:
1 | import static org.mockito.Matchers.*; |
使用这样:
1 2 3 4 5 | when( fooDao.getBar( Matchers.<Bazoo>any() ) ).thenReturn(myFoo); |
在您需要导入
http://site.mockito.org/mockito/docs/1.10.19/org/mockito/Matchers.html
anyObject应该符合您的需求。
此外,您始终可以考虑为Bazoo类实现hashCode和equals。 这将使您的代码示例按您希望的方式工作。