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