一尘不染

查找Mockito构造的导入静态语句

java

我正试图撞破我和Mockito之间的砖墙。我为试图为Mockito的东西获取正确的 导入静态 语句付出了很多精力。您可能会认为有人会抛出一个表,说
anyInt() 来自 org.mockito.Matcherswhen() 来自 org.mockito.Mockito
等,但这对新手来说太有用了,不是吗?

这种事情,特别是与无数个以星号结尾的导入语句混合使用时,并不总是很有帮助:

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

是的,我知道并且一直在尝试使用 _Eclipse窗口- >首选项-> Java->编辑器->内容辅助->收藏夹_机制。它有帮助,但并没有击中头部。

这个问题的任何答案将不胜感激。

非常感谢,拉斯


阅读 178

收藏
2020-12-03

共1个答案

一尘不染

问题在于,从Hamcrest和Mockito进行的静态导入具有相似的名称,但分别返回Matchers和实值。

一种解决方法是简单地复制Hamcrest和/或Mockito类并删除/重命名静态函数,以使它们更容易记住并且在自动完成中较少出现。那就是我所做的。

另外,在使用模拟时,我尽量避免assertThat偏爱其他other assertionsverify,例如

assertEquals(1, 1);
verify(someMock).someMethod(eq(1));

代替

assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));

如果您从Eclipse中的“收藏夹”中删除类,并键入长名称(例如)org.hamcrest.Matchers.equalTo,然后对“ Add
Import”添加CTRL + SHIFT +
M,则自动完成功能只会显示Hamcrest匹配器,而不会显示任何Mockito匹配器。只要您不混合匹配器,就可以用另一种方式进行。

2020-12-03