groovy - 考虑到枚举源的所有值(基本上作为 Junit5 @EnumSource 的替代品),如何在 Spock2 中创建数据驱动测试?
问题描述
我想测试一个特定的系统行为,考虑枚举中的所有值(有时不包括一些值)。这可以在 Junit5 中使用@EnumSource
注释轻松实现。Spock2 中是否有任何替代方法(或任何简单的解决方法)?
解决方案
您可以使用 Spocks 的能力来使用任何 Iterable
数据源:
import spock.lang.*
class EnumSpec extends Specification {
def "let's try this!"(Color color) {
expect:
color.name() == ''
where:
color << Color.values()
}
}
enum Color {
RED, BLUE, GREEN
}
这个测试当然会失败 3 次,因为名称不为空,但它显示了如何迭代所有枚举值。
推荐阅读
- excel - 如何用月份的日期填充数组?
- android - Firebase 存储:从存储中下载文件而无需下载 uri
- pdf - Power BI 自定义视觉对象导出为 PDF
- python - 重新安装 Windows 10 后 Autopep8 和其他模块无法正常工作
- html - 不会隐藏 Outlook 电子邮件中的内容
- node.js - 服务器端渲染(Next.js)和静态站点渲染(Gatsby.js)有什么区别?
- reactjs - 通过异步 API 调用在 React Context 中设置数据
- javascript - 根据父对象对javascript中的对象进行排序。(反应)
- reactjs - Ant 设计和 React 测试库
- selenium - 是否可以在 Kiwi TCMS 中运行使用 selenium 和 cucumber 创建的测试用例?