Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能把这个球扔给朱尼特_Java_Spring_Testing_Junit_Jira - Fatal编程技术网

Java 我怎样才能把这个球扔给朱尼特

Java 我怎样才能把这个球扔给朱尼特,java,spring,testing,junit,jira,Java,Spring,Testing,Junit,Jira,我在jira中得到了一个更新问题的函数,我想使用JUnit抛出捕获 这是我得到的函数: @PutMapping(value=“/update/{issueKey}”) 公共责任 UpdateSue(@Validated@RequestBody EventDTO EventDTO,BindingResult,@PathVariable String issueKey) { info(“Entra en/update con el payload:{}”,eventDTO); if(result.h

我在jira中得到了一个更新问题的函数,我想使用JUnit抛出捕获

这是我得到的函数:

@PutMapping(value=“/update/{issueKey}”)
公共责任
UpdateSue(@Validated@RequestBody EventDTO EventDTO,BindingResult,@PathVariable String issueKey)
{
info(“Entra en/update con el payload:{}”,eventDTO);
if(result.hasErrors())
{
ErrorResponseDTO ErrorResponseDTO=ErrorResponseDTO.getErrorResponseDTOFromBinding(结果,消息源);
返回新的ResponseEntity(errorResponseDTO,HttpStatus.BAD_请求);
}
尝试
{
SuccessResponseDTO SuccessResponseDTO=jiraService.update(eventDTO,issueKey);
info(“/update response{}”,successResponseDTO);
返回新的ResponseEntity(successResponseDTO,HttpStatus.OK);
}
捕获(EywaException EywaException)
{
logger.error(“Se ha producido un error en ACTIVATZAR un issue”,eywaException);
ErrorResponseDTO responseDTO=新的ErrorResponseDTO();
字符串errorMessage=messageSource.getMessage(eywaException.getMessage(),null,
LocaleContextHolder.getLocale());
responseDTO.addErrorResponseDTO(eywaException.getMessage().split(“\\”)[0],errorMessage);
返回新的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,当我输入issueKey时,我得到的状态是200(即使issue key不存在)


它必须抛出状态500

我想你的问题是路径变量。 终点是“/update/{issueKey}”,但在测试期间调用“/update/”(?)


Spring知道第一个端点,您调用第二个端点,Spring找不到这个端点,抛出405方法,这是不允许的(您没有PUT/update)。

我认为在JUnit测试中,您必须进行
,然后抛出(eywaException)
而不是
。然后返回(successResponseDTO)
要使测试通过异常并获得500状态,我之前尝试过放置issue键,但没有获得500,很抱歉在posttry中没有提到这一点,请从put中删除基本变量(..),spring在内部调用它。(基础是你的ip/localhost?)基础+更新是我发送的方向,我已经删除了它,现在我得到了404。你刚刚删除了基础部分吗?因为405通常意味着如果您可以向我们提供您的基本内容和更新内容,则无法找到该方法。另外,您的控制器具有基本url(RequestMapping(“/something/”),请尝试使用字符串进行测试,例如mvc.perform(put(“/update/SOMEID”))或mvc.perform(put(“/something/update/SOMEID”))