我有一个测试用例,我需要测试多个字符串,它们被初始化为 String[]
myArray.each {
shouldFail(IllegalArgumentException) {
println "it = " + it
testObj.testMyString("$prefix $it", mockBuilder);
}
}
打印语句显示"it"
为空。我究竟做错了什么?
如果您命名每个 var,它应该可以工作:
myArray.each { element ->
shouldFail(IllegalArgumentException) {
println "it = $element"
testObj.testMyString("$prefix $element", mockBuilder)
}
}
每个闭包都有自己的“它”。在您的情况下,当“it”为空时,它是shouldFail
闭包的“it”而不是myArray.each
闭包。
当我将代码更改为此时它起作用了
myArray.each {
def testStr = it
shouldFail(IllegalArgumentException) {
println "it = " + testStr
testObj.testMyString("$prefix $testStr", mockBuilder);
}
}
我猜“它”在内部封闭中不可用