我正在编写一个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
}
赞美任何修复常规代码的帮助。
答案 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)}