Mockito是否导致Coverage误报?

问题描述 投票:0回答:1

我们使用Coverity来识别Java代码中的潜在安全性和质量缺陷。在我们的一项单元测试中,我们进行了一些涉及数据库连接代码的测试:

Connection connection = mock(Connection.class);
Statement statement = mock(Statement.class);
when(connection.createStatement()).thenReturn(statement);

Coverity抱怨潜在的资源泄漏:

CID 21920:资源泄漏(RESOURCE_LEAK)4。 Leaked_resource:无法保存或关闭由connection.createStatement()]创建的资源

我对Mockito的工作方式的理解是,实际上从未调用过connection.getStatement(),因此没有创建需要稍后关闭的语句。 (这与需要关闭JDBC连接的数据库中的典型情况相反。)

我的理解正确吗?可以公平地说这是Coverity的虚假报告,是由于getConnection()在嘲讽的情况下的非典型行为引起的?如果没有,请理顺我。

我们使用Coverity来识别Java代码中的潜在安全性和质量缺陷。在我们的一个单元测试中,我们进行了一些涉及数据库连接代码的测试:Connection connection =嘲笑(...

jdbc mockito coverity resource-leak
1个回答
3
投票

我想你的理解不太正确。

© www.soinside.com 2019 - 2024. All rights reserved.