避免 IDEA 中 @Mocked 字段未使用的警告

Mic*_*hal 5 jmockit intellij-idea

当我的单元测试中有一些字段时@Mocked

@Mocked
private MyService service;
Run Code Online (Sandbox Code Playgroud)

IDEA(我猜Java也是如此)会产生未使用的警告,因为它从未被赋值(因为它只是由JMockit填充) - 尽管它正在被读取。我想知道避免此警告的正确方法是什么。我可以

@SuppressWarnings("unused")
@Mocked
private MyService service;
Run Code Online (Sandbox Code Playgroud)

但这也会在我实际停止使用该字段时抑制警告(我仍然想要那样)。我也可以做

@Mocked
private MyService service = null;
Run Code Online (Sandbox Code Playgroud)

它修复了“未使用”警告,但我收到了“冗余初始化”警告。我可以通过这样做来避免这种情况

@SuppressWarnings("RedundantFieldInitialization")
@Mocked
private MyService service = null;
Run Code Online (Sandbox Code Playgroud)

但这似乎是太多的警告避免代码,不太好。

那么有没有更好的方法来避免警告,避免过于冗长的代码,并且仍然受益于检测真正未使用的变量(=那些从未读取过的变量)?


IDEA 设置Inspections | Unused declaration为添加注释,其存在将关闭给定字段的警告,但它也会禁用从未读取的字段的警告,因此对我来说这不是完整的解决方案。