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

时间:2019-04-29 04:45:46

标签: 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
    }

赞美任何修复常规代码的帮助。

1 个答案:

答案 0 :(得分:6)

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

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

请注意:您可以通过使用collect创建一个列表来避免附加到列表中:

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