eclipse 有什么方法可以防止在Mock实现上出现“资源”警告吗?

mftmpeh8  于 2022-11-23  发布在  Eclipse
关注(0)|答案(2)|浏览(122)

这属于一个小的,但不断的烦恼。我正在使用Eclipse IDE。它非常有帮助地标记了各种编码问题的警告,包括:
潜在的资源泄漏:'connection'不能关闭
当您处理真实的的资源对象时,这可能是一个非常有用的警告,所以我喜欢将Eclipse配置为显示警告。(在本例中,它是java.sql.Connection接口的单元测试友好实现。)这是一个麻烦的问题。我所知道的消除警告的唯一方法是将@SuppressWarnings("resource")注解添加到引用该对象的代码中。不幸的是,这意味着对于一个经常使用的Mock类来说需要大量的重复。
是否有任何类级注解可以放在Mock类上以防止警告出现?或者是否有其他方法可以防止那些实际上没有任何资源泄漏的类出现警告?

s4n0splo

s4n0splo1#

根据你的Java版本(你需要2011年中期发布的java 7),你可以使用try-with块。这是一个很好的特性,因为它还可以确定变量的范围,不让它们挂起超过需要的时间。

s4chpxco

s4chpxco2#

@SuppressWarnings("resource")注解可以在TYPE级别上工作,所以我对整个测试类进行了注解,其中的资源被模拟。
这是一个示例:

@ExtendWith(MockitoExtension.class)
@SuppressWarnings("resource")
public class BatchDaoTest {

    @InjectMocks
    private BatchDao cut;

    @Mock
    private Connection con;

...

我知道这不是最好的解决方案(因为它可以隐藏真实的的问题),但它是我迄今为止找到的唯一解决方案。

相关问题