java - 使用 spock 在测试中生成对象列表

标签 java groovy java-8 spock

我正在编写一个 spock 测试,其中我需要生成一些测试数据(夹具)。我知道如何在 Java 中完成,但未能在 spock(groovy) 中实现。

我是 groovy 的新手,因此我提供了我的 java 实现

Java实现如下:

List<Employee> employees= LongStream.range(1, 70).mapToObj(id -> {
        Employee emp = new Employee ();
        emp.setEmployeeId(id);
        return emp ;
    }).collect(Collectors.toList());

我正在尝试使用 groovy 来实现相同的目标,但无法做到这一点。

def employees = [1..70].each { id ->
        def emp = new Employee()
        emp.setEmployeeId(id)
        employees << emp
    }

寻求任何帮助以修复 groovy 代码..

最佳答案

[1..70] 创建一个列表,其中一个元素是一个范围。你想使用类似 (1..70):

(1..70).each{employees << new Employee(employeeId: it)}

附带说明:您可以通过使用 collect 创建一个来避免附加到列表:

List<Employee> employees = (1..70).collect{new Employee(employeeId: it)}

关于java - 使用 spock 在测试中生成对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55897094/

相关文章:

java - 调用Jenkins插件(thinBackup)的内部方法

xml - Groovy 使用 XMLHolder 迭代节点

java - Java7 和 Java8 中 switch-case 语句的行为不一致

java - Spring Cloud Dataflow 文件启动器修改

java - 接收 java.lang.Object 作为输入的方法不应该也接收 javax.servlet.jsp.JspWriter 作为输入吗?

grails - 如何从GSP文件中的g:uploadForm获得结果(成功/失败)?

spring - 用 java 8 lambda 表达式替换 RowMapper 对象

java - 使用 count 和 limit 时如何获取底层流的大小?

java - Spring Boot应用程序不创建.jar文件

java - vaadin 标签中的 Html 内容