gpt4 book ai didi

java - 我怎样才能用 JUnit 抛出这个问题

转载 作者:行者123 更新时间:2023-11-28 20:07:25 25 4
gpt4 key购买 nike

我有一个函数可以更新 jira 中的一个问题,我想使用 JUnit 抛出捕获。

这是我得到的函数:

@PutMapping (value = "/update/{issueKey}")
public ResponseEntity<ResponseDTO>
updateIssue(@Validated @RequestBody EventDTO eventDTO, BindingResult result, @PathVariable String issueKey)
{
logger.info("Entra en /update con el payload: {}", eventDTO);

if (result.hasErrors())
{
ErrorResponseDTO errorResponseDTO = ErrorResponseDTO.getErrorResponseDTOFromBinding(result, messageSource);
return new ResponseEntity<>(errorResponseDTO, HttpStatus.BAD_REQUEST);
}
try
{
SuccessResponseDTO successResponseDTO = jiraService.update(eventDTO, issueKey);
logger.info("/update response {} ", successResponseDTO);
return new ResponseEntity<>(successResponseDTO, HttpStatus.OK);
}
catch (EywaException eywaException)
{
logger.error("Se ha producido un error en actualizar un issue", eywaException);
ErrorResponseDTO responseDTO = new ErrorResponseDTO();


String errorMessage = messageSource.getMessage(eywaException.getMessage(), null,
LocaleContextHolder.getLocale());
responseDTO.addErrorResponseDTO(eywaException.getMessage().split("\\.")[0], errorMessage);
return new ResponseEntity<>(responseDTO, HttpStatus.INTERNAL_SERVER_ERROR);
}
}

这就是我在 JUnit 中拥有的

@Test
public void updateIssue_NonExistanceIssue_shouldReturnFail() throws Exception
{
when(jiraService.update(eventDTO, "")).thenReturn(successResponseDTO);

String json = "{\"summary\":\""+eventDTO.getSummary()+"\""+
", \"description\":\""+eventDTO.getDescription()+"\""+
", \"raised\":\""+eventDTO.getRaised()+"\""+
", \"issueType\":\""+eventDTO.getIssueType()+"\""+
", \"priority\":\""+eventDTO.getPriority()+"\""+
", \"issuesubType\":\""+eventDTO.getIssuesubType()+"\""+
", \"region\":\""+eventDTO.getRegion()+"\""+
", \"airport\":\""+eventDTO.getAirport()+"\""+"}";

mvc.perform(put(BASE + UPDATE.replaceAll("\\{.*\\}", ""))
.contentType(MediaType.APPLICATION_JSON)
.content(json))
.andExpect(status().isInternalServerError());

}

(我已经在设置中创建了对象)我得到的状态是 405,当我输入问题 key 时,我得到了状态 200(即使问题 key 不存在)

它必须抛出状态 500

最佳答案

我认为在 JUnit 测试中,您必须使用 .thenThrow(eywaException); 而不是 .thenReturn(successResponseDTO); 来使测试通过异常并获得 500 状态

关于java - 我怎样才能用 JUnit 抛出这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57990784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com