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

Ric*_*chK 7 java annotations intellij-idea mockito

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

private Foo foo;

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

私人领域'foo'永远不会被分配

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

@Mock private Foo foo;

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

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

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

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

Pak*_*kka 7

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

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

通过此机制提供的入口点依次通过UnusedDeclarationInspection等检查进行查询.

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

您可以从Settings-> Inspections访问此配置,然后按名称搜索"未使用的符号"检查: "未使用的符号"检查配置的屏幕截图

为了方便起见,你也可以浏览到这些设置,直接通过调用Alt-Enter组合,而插入符是一个场打上了主意,因为未使用: 通过调用一个未使用的字段Alt-Enter组合访问"未使用符号"设置的屏幕截图

  • 嗯,这不仅仅是解决问题的一半吗?我想在声明@Mock成员变量时让IntelliJ警告我,但不要使用它,这是不可能的... (2认同)
  • 好点子.我已经提交[IDEA-118095](http://youtrack.jetbrains.com/issue/IDEA-118095)来改进这一点.请查看并添加您的评论. (2认同)