java - 测试方法中的返回语句

标签 java spring unit-testing

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

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

在这一行中,我不知道如何正确编写 return 语句。thenReturn 之后的括号中应该包含什么。 我的方法创建团队如下所示:

@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 时,我有预期的表达式。

最佳答案

根据您想要做什么,您可以执行以下操作:

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

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

PS:我假设您正在测试的类不是包含您发布的方法的类。我假设您正在 mock 该服务,因此在之前的某个地方,您应该编写如下内容:

TeamService teamService = mock(TeamService.class);

关于java - 测试方法中的返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50839456/

相关文章:

java - 更改matlab中的默认JVM版本

java - 根据格式字符串格式化数字字符串

java - Spring 形式 : BindException when submiting large list of objects

node.js - Vue.js 单元测试错误 找不到模块

java - 缩小 React 错误#310;在 React 中使用 Chrome 通过 Selenium 使用非缩小的开发环境来获取完整错误和其他有用的警告

java - 文本字段的长度和字母有限

java - spring data jpa 是否做缓存

java - 在 spring 运行时更改数据源 url

unit-testing - 在grails中执行 Controller 的单元测试时,不能使用grailsApplication.getMetadata.get (“”)

java - 开始使用 TestFx