У меня есть следующий модульный тест, который охватывает перехват исключений, связанных с недопустимыми переданными компонентами:
/**
* Test scenario where someone could enter value
* in commandBeanName that does not exist.
* This will throw MwsException.
*/
@Test(expected=MwsException.class)
public void testCommandBeanNotFound() {
WritebackCommandMetadata writebackCommand = new WritebackCommandMetadata();
writebackCommand.setCommandBeanName("InvalidBean");
writebackCommand.setCommandName("Testing Invalid Bean");
List<WritebackCommandMetadata> commands = new ArrayList<WritebackCommandMetadata>();
commands.add(writebackCommand);
when(configService.getCommands(any())).thenReturn(commands);
WritebackConfigKey configKey = new WritebackConfigKey(EvaluationTypeEnum.FINAL, WritebackType.NOWORKOUT);
beanResolver.getCommands(configKey);
}
Когда я его запустил, я могу четко пройти по коду и увидеть, что перехватывает NoSuchBeanDefinitionException
и выбрасываетмое пользовательское исключение.
Как бы то ни было, SonarQube
говорит, что у меня 0% покрытия на этот блок кода: