Sonarqube 假阳性-测试应包括断言-S2699
我们有很多代码(不是全部代码),其中有一个问题因为没有断言而被报告,但它确实存在于测试方法中 获取冲突的示例代码:Sonarqube 假阳性-测试应包括断言-S2699,sonarqube,Sonarqube,我们有很多代码(不是全部代码),其中有一个问题因为没有断言而被报告,但它确实存在于测试方法中 获取冲突的示例代码: @Test public void successfullValidation() throws ErrorInfo_Exception { AgencyInfoServiceResponse agencyResponse = new AgencyInfoServiceResponse(); AgencyInfoServiceResponseHeader header
@Test
public void successfullValidation() throws ErrorInfo_Exception {
AgencyInfoServiceResponse agencyResponse = new AgencyInfoServiceResponse();
AgencyInfoServiceResponseHeader header = new AgencyInfoServiceResponseHeader();
header.setCmdStatus("Success");
header.setCmdType("response");
agencyResponse.setAgencyInfoServiceResponseHeader(header);
assertTrue(validator.validate(agencyResponse));
}
但是,如果我将验证器拉入一个变量并断言该变量为true,那么冲突就会消失。
assertTrue导入为:import static org.junit.Assert.assertTrue代码>
我正在使用SonarQube 6.4.0.25310和SonarJava 4.10.0.10260
为什么说我没有断言?这应该包括在内。SonarJava插件的最新版本是4.11.0.10660。你也可以试试吗?语义引擎似乎无法解析方法validator.validate()
。您确定在分析过程中为测试源提供了验证器
类的字节码吗?如果引擎无法访问解析验证器
类型,它也将无法解析asserTrue()
方法。已更新到版本4.11.0.10660,此问题将继续。我会仔细看看字节码是否可用,但我不知道为什么不可用。