Reputation: 185
I am writing a spock test, wherein I need to generate some test data (Fixtures). I know how it could be done in Java, but failing to get it implemented in spock(groovy).
I'm new to groovy, hence I'm providing my java implementation
Java implementation as follows :
List<Employee> employees= LongStream.range(1, 70).mapToObj(id -> {
Employee emp = new Employee ();
emp.setEmployeeId(id);
return emp ;
}).collect(Collectors.toList());
I'm trying to achieve the same using groovy, but unable to get it right.
def employees = [1..70].each { id ->
def emp = new Employee()
emp.setEmployeeId(id)
employees << emp
}
Appraciate any help to fix the groovy code..
Upvotes: 3
Views: 953
Reputation: 45329
[1..70]
creates a list with one element that is a range. You want to use something like (1..70)
:
(1..70).each{employees << new Employee(employeeId: it)}
Just a side note: you can avoid appending to the list by just creating one using collect
:
List<Employee> employees = (1..70).collect{new Employee(employeeId: it)}
Upvotes: 8