我在Google上搜索了很多,但没有找到一个在数据管道中使用字符串值填充输入数据的示例。
有人可以举一个例子吗?
我用了:
[a,b,c] << ["aaa","bbb","ccc"]
但出现错误。
最佳答案
假设您要运行3次测试,并且为第一次运行分配了相同的变量“ aaa”,第二次运行分配了“ bbb”,第三次运行分配了“ ccc”,则可以这样进行:
where:
variableName << ["aaa","bbb","ccc"]
这是我的一个项目的完整示例:
class PhoneNumberConverterSpec extends Specification {
private PhoneNumberConverter phoneNumberConverter = PhoneNumberConverter.instance
@Unroll('convert invalid phone number #input')
def 'attempt to convert invalid phone numbers to canonical format'() {
expect:
!phoneNumberConverter.canConvert(input)
where:
input << [null, 6, '353', '9999999']
}
}
另一方面,如果只想运行一次测试并将值分配给3个不同的变量,那么使用数据管道确实没有意义,只需像在常规Groovy代码中那样声明和分配变量即可。