我正在尝试使用Mockito测试一些遗留代码 .
我想在 生产环境 中使用 FooDao
,如下所示:
foo = fooDao.getBar(new Bazoo());
我可以写:
when(fooDao.getBar(new Bazoo())).thenReturn(myFoo);
但是显而易见的问题是 getBar()
永远不会被我使用相同的 Bazoo
对象调用 . (诅咒 new
运营商!)
如果我能以一种无论参数如何返回 myFoo
的方式存根方法,我都会喜欢它 . 如果做不到这一点,我真的希望在合理的测试覆盖率之前避免更改 生产环境 代码 .
3 回答
或(以避免
null
s):不要忘记导入匹配器(许多其他可用):
对于Mockito 2.1.0和更新版本:
对于旧版本:
使用这样:
在您需要导入之前
Mockito.Matchers
http://site.mockito.org/mockito/docs/1.10.19/org/mockito/Matchers.html
anyObject应该符合您的需求 .
此外,您始终可以考虑为Bazoo类实现hashCode和equals . 这将使您的代码示例按您希望的方式工作 .