使用Spock生成测试中的对象列表

tec*_*noJ 2 java groovy spock java-8

我正在编写一个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());
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用groovy实现相同的功能,但无法正确完成。

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

评估解决常规代码的任何帮助。

ern*_*t_k 6

[1..70]创建一个包含范围为一个元素的列表。您想使用类似(1..70)

(1..70).each{employees << new Employee(employeeId: it)}
Run Code Online (Sandbox Code Playgroud)

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

List<Employee> employees = (1..70).collect{new Employee(employeeId: it)}
Run Code Online (Sandbox Code Playgroud)