我们使用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 =嘲笑(...
我想你的理解不太正确。