java - 使用 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
}
Appraciate 任何帮助来修复 groovy 代码..
解决方案
[1..70]
创建一个包含一个元素的列表,该元素是一个范围。你想使用类似的东西(1..70)
:
(1..70).each{employees << new Employee(employeeId: it)}
只是一个旁注:您可以通过使用创建一个来避免附加到列表中collect
:
List<Employee> employees = (1..70).collect{new Employee(employeeId: it)}
推荐阅读
- r - 是否有一个函数可以帮助在 R 中使用 k-NN 预测缺失值?
- r - 减少请求/等待天数后错误 429 不会消失
- python - 旋转后变换图像中的点时出错
- aws-api-gateway - 使用 AWS 直接连接从本地连接到私有 API 网关
- javascript - 有没有办法阻止 iframe 发出任何 HTTP 请求?
- python - 子进程 check_output 上的路径
- java - QuizCreator:安全问题和答案的最佳方法是什么?
- python - 断言异常消息?
- node.js - 如何在本地运行 Express 应用程序并连接到远程 Heroku Postgres 实例
- android - Django restframework API 作为离线第一个移动应用程序的后端