Junit测试方法 - 无法解析符号' .ok()'

时间:2018-06-13 09:29:44

标签: java rest junit

您好我想在我的 junit response方法中使用方法test,但我有一个错误: cannot resolve symbol 'response'

是什么原因或者你知道我可以在这个地方替换的其他方法?

这是我的方法:

@PostMapping("/addPeopleToTeams/{teamId}/{personId}")
@ResponseBody
public ResponseEntity<?> addPeopleToTeam(@PathVariable Long teamId, @PathVariable Long personId) {
    TeamsAndPersonsId teamsAndPersonsId = new TeamsAndPersonsId(personId, teamId);
    teamService.findTeamById(teamsAndPersonsId.getTeamId());
    personService.findById(teamsAndPersonsId.getPersonId());
    teamService.addPersonsToTeams(personId, teamId);
    return ResponseEntity.ok(teamsAndPersonsId);

}

这是我的测试代码:

@Test
    public void shouldAddPersonToTeam() throws Exception {
        // Given
        TeamDto teamDto = prepareTeamDto();
        PersonDto personDto = preparePersonDto();
        // When
        when(teamService.createTeam(teamDto)).thenReturn(Response.ok().build());
        when(personService.addPerson(personDto)).thenReturn(Response.ok().build());
        // than
        mockMvc.perform(post("/addPeopleToTeams/{teamId}/{personId}", 1, 1))
                .andExpect(status().isOk());

    }

此元素(Reponse.ok()。build());之后返回deosn工作。

1 个答案:

答案 0 :(得分:0)

我猜测Response的导入不正确。

另外,生产类正在使用ResponseEntity.ok(teamsAndPersonsId),但您的单元测试用例是Mocking Response类。确保在单元测试用例中使用同一类的模拟对象。

参考How to unit test a Spring MVC controller using @PathVariable?进行样本测试。