我正试图冲破我和 Mockito 之间的砖墙。我已经因为试图为 Mockito 的东西获得正确的 导入静态 语句而焦头烂额。您可能会认为有人会直接扔出一张表说 anyInt() 来自 org.mockito.Matchers 而 when() 来自 org.mockito.Mockito 等等,但这对新手来说太有帮助了,不是吗?
这种事情,尤其是与无数以星号结尾的导入语句混合使用时,并不总是很有帮助:
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
是的,我知道并一直在尝试使用 Eclipse Window -> Preferences-> Java -> Editor-> Content Assist -> Favorites 机制。它有帮助,但并没有一针见血。
对此问题的任何答案将不胜感激。
非常感谢,拉斯
原文由 Russ Bateman 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是来自 Hamcrest 和 Mockito 的静态导入具有相似的名称,但分别返回 Matchers 和实际值。
一种解决方法是简单地复制 Hamcrest 和/或 Mockito 类并删除/重命名静态函数,以便它们更容易记住并且更少出现在自动完成中。我就是这么做的。
此外,在使用模拟时,我尽量避免
assertThat
支持其他 otherassertions
和verify
,例如代替
如果您从 Eclipse 中的收藏夹中删除类,并输入长名称,例如
org.hamcrest.Matchers.equalTo
并执行 CTRL+SHIFT+M 以“添加导入”,那么自动完成将只显示 Hamcrest 匹配器,而不是任何 Mockito 匹配器.只要你不混合匹配器,你也可以用另一种方式来做到这一点。