您好我想在我的 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工作。
答案 0 :(得分:0)
我猜测Response
的导入不正确。
另外,生产类正在使用ResponseEntity.ok(teamsAndPersonsId)
,但您的单元测试用例是Mocking Response
类。确保在单元测试用例中使用同一类的模拟对象。
参考How to unit test a Spring MVC controller using @PathVariable?进行样本测试。