测试方法中的return语句

时间:2018-06-13 14:15:01

标签: java spring unit-testing

我应该如何在我的测试方法中正确返回元素。我的考试有问题。

when(teamService.createTeam(teamDto)).thenReturn();

在这一行中我不知道如何正确写出return语句。在afterReturn之后应该在括号中。 我的方法cretate团队看起来像这样:

@Transactional
    public Team createTeam(TeamDto teamDto) {
        Assert.notNull(teamDto, "Object can't be null!");
        try {
            Assert.notNull(teamDto.getName());
            return teamRepository.save(modelMapper.map(teamDto, Team.class));
        } catch (Exception e) {
            throw new CreateEntityException(e);
        }
    }

在这个方法中,我返回Team对象但是当我添加Team时,我有预期的表达式。

2 个答案:

答案 0 :(得分:3)

取决于你想做什么,你可以这样做:

when(teamService.createTeam(teamDto)).thenReturn(new Team());

Team team = mock(Team.class);
when(teamService.createTeam(teamDto)).thenReturn(team);

PS:我假设您的受测试的课程不是包含您发布的方法的课程。我假设你在嘲笑那个服务,所以在某个地方,之前,你应该写一些类似的东西:

TeamService teamService = mock(TeamService.class);

答案 1 :(得分:1)

由于您使用模拟框架来模拟TeamService类,因此您应该创建一个带有虚拟值的模拟Team对象,并将其返回到thenReturn()子句中。