我正在为下面的 java 代码编写 Junit 代码覆盖率,而代码没有覆盖Otherthan Runtime Exception.
请找到我下面的java代码。
public class NotifySupervisorJobTask implements Tasklet {
private static final Logger LOGGER = LoggerFactory.getLogger(NotifySupervisorJobTask.class);
@Autowired
private CoreClient client;
@Autowired
private ItemProcessFailedNotifier itemProcessFailedNotifier;
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
try {
client.notifySupervisor(null);
LOGGER.info("notifySupervisorJobTask - execute() called");
} catch (RuntimeException exception) {
String errorMessage = format("Error in triggering notify supervisor job. Task will be repeated at next scheduled time. Error is: [%s]", exception.getMessage());
LOGGER.error(errorMessage, exception);
contribution.setExitStatus(FAILED);
itemProcessFailedNotifier.notifyByEmailOnException(chunkContext.getStepContext(), new Exception(errorMessage,
exception));
}
return RepeatStatus.FINISHED;
}
}
请找到我的案例testcase代码。other than runtime exception
@InjectMocks 私有 NotifySupervisorJobTask notifySupervisorJobTask;
@Mock
private ItemProcessFailedNotifier itemProcessFailedNotifier;
@Mock
private CoreClient client;
private ChunkContext chunkContext;
private StepContext stepContext;
@Before
public void setUp() {
chunkContext = mock(ChunkContext.class);
stepContext = mock(StepContext.class);
when(chunkContext.getStepContext()).thenReturn(stepContext);
}
@Test(expected = Exception.class)
public void shouldThrowExceptionOtherThanRuntimeException() throws Exception {
Exception ex = mock(Exception.class);
doThrow(ex).when(client).notifySupervisor(null); // Line not covered
notifySupervisorJobTask.execute(null, chunkContext); // Line not covered
verify(itemProcessFailedNotifier).notifyByEmailOnException(stepContext, ex); // Line not covered
}
料青山看我应如是
互换的青春
随时随地看视频慕课网APP
相关分类