java - 如何通过 Sonarqube 异常测试覆盖率
问题描述
我正在通过 JUnit 测试,但 Sonarqube 不断通知我,我的测试未涵盖我的方法。
这是我的测试方法:
@Test(expected = DataNotFoundException.class)
public void testNullApplicationData() {
appFilter.setApplicationId(null);
appFilter.setPolicyNumber(null);
Mockito.when(impl.getApplication(appFilter, null)).thenThrow(DataNotFoundException.class);
assertNotEquals(null, impl.getApplication(appFilter, null));
}
这是我正在测试的方法:
@Override
public ApplicationData getApplication(ApplicationFilter filter, String systemId) {
try {
ApplicationData appData = retrieveAppData(filter, systemId);
if (Objects.isNull(appData)) {
throw new DataNotFoundException(
StringUtils.join("Application ", ApplicationUtil.getApplicationFilterId(filter), " not found"));
}
return retrieveAppData(filter, systemId);
} catch (DataAccessException ex) {
throw new DataException(
StringUtils.join("Error retrieving application ", ApplicationUtil.getApplicationFilterId(filter)));
}
}
一些注意事项:
我确信该retrieveAppData(filter, systemId)
方法将返回一个null
结果,这将确保DataNotFoundException
将被触发
我还没有为此编写测试方法,DataAccessException
因为我试图首先弄清楚如何在 Sonarqube 中传递第一个异常
以下是我在构建项目时使用的命令:
mvn clean install
mvn clean package sonar:sonar
解决方案
推荐阅读
- java - 如何从文本中删除包含破折号的单词?
- python - 使用 Keras 跑步时的形状问题
- reactjs - 你如何在 React 中使用 Swiper 回调方法?
- javascript - 所选项目JS的按钮功能
- machine-learning - 确定批量输入形状
- express - Nestjs start 在模块初始化中静默失败
- swift - SwiftUI - 按下按钮动画视图
- r - mutate(across(contains("column") 在存储列名后对每一列进行额外修改
- java - 为什么我不能在模型(MVC 模式)中使用“this”?
- vim - 在vim中搜索并替换为增量