带有因变量的 Spock "where"
Spock "where" with dependent variables
我正在尝试在 Spock 中进行一些数据驱动测试。
我有 1 个变量依赖于另一个变量:即
Services = ["tf1", "fr2"]
Questions(service) = ["What is on {service} ?", "Switch to {service}"]
我希望我的测试检查服务和问题(服务)的所有可能组合:总共 4 个测试。
我试过写一个 where:
这样的子句 :
where:
service << SERVICES
question << Questions(service)
但是在运行时失败了 groovy.lang.MissingPropertyException: No such property: service for class: com.my.testclass
有人找到解决这个问题的办法了吗?
你想要的是不可能的,所有变量必须具有相同的基数。对于每个 service
条目,必须恰好有一个对应的 question
。
您在评论中写的是正确的方法,您可以将其提取到辅助方法中 where: [service, question] << serviceQuestionsCombinations()
。
我正在尝试在 Spock 中进行一些数据驱动测试。
我有 1 个变量依赖于另一个变量:即
Services = ["tf1", "fr2"]
Questions(service) = ["What is on {service} ?", "Switch to {service}"]
我希望我的测试检查服务和问题(服务)的所有可能组合:总共 4 个测试。
我试过写一个 where:
这样的子句 :
where:
service << SERVICES
question << Questions(service)
但是在运行时失败了 groovy.lang.MissingPropertyException: No such property: service for class: com.my.testclass
有人找到解决这个问题的办法了吗?
你想要的是不可能的,所有变量必须具有相同的基数。对于每个 service
条目,必须恰好有一个对应的 question
。
您在评论中写的是正确的方法,您可以将其提取到辅助方法中 where: [service, question] << serviceQuestionsCombinations()
。