为什么@Mock没有“永远不会分配字段”警告

时间:2013-11-01 18:22:50

标签: java intellij-idea annotations mockito

如果在测试类中声明私有字段:

private Foo foo;

使用但从未分配,当我将鼠标悬停在声明上时,IntelliJ IDEA(以及可能是其他IDE)会显示警告,并将其呈现为灰色

私人字段'foo'永远不会被分配

但是,如果我使用Mockito并注释该字段,如:

@Mock private Foo foo;

警告消失并将字段呈现为紫色,表示已分配该字段。 IDE如何知道@Mock意味着什么?我已经浏览了Mockito源代码,注释定义似乎没有任何内容,我的IDE没有Mockito插件。

我正在编写一个类似于Mockito的库,带有一个等效的注释,我很想知道让IDE删除警告。

(我不是Java开发人员,所以如果我说错了请纠正我)

修改 我在Eclipse中尝试了这个,它实际上删除了任何注释的警告,这是@nikpon建议的。

1 个答案:

答案 0 :(得分:6)

IntelliJ IDEA中的“未使用符号”检查具有此注释的特殊配置。

intellij-community代码库中快速搜索“org.mockito.Mock”会显示JUnitEntryPoint类,该类会插入“deadCode”扩展点。

通过UnusedDeclarationInspection等检查来查询通过此机制提供的切入点。

请注意,检查具有配置窗格,您可以在其中配置其他自定义注释,以防止将字段标记为未使用。

您可以从设置 - >检查访问此配置,然后按名称搜索“未使用的符号”检查: screenshot of the "unused symbol" inspection configuration

为方便起见,您还可以直接导航到这些设置,方法是在插入符号位于IDEA未标记的字段上时,通过调用 Alt-Enter 来直接导航到这些设置: screenshot of accessing the "unused symbol" settings by invoking Alt-Enter on an unused field