2012-05-11 22 views
2

我有一個測試的情況下,我需要測試多個字符串和它們初始化爲字符串[]Groovy的測試用例字符串數組迭代

myArray.each { 
     shouldFail(IllegalArgumentException) { 
      println "it = " + it 
      testObj.testMyString("$prefix $it", mockBuilder); 
     } 
    } 

打印語句表明"it"爲空。我究竟做錯了什麼?

回答

3

可如果你命名你的每一個變種,它應該工作:

myArray.each { element -> 
    shouldFail(IllegalArgumentException) { 
     println "it = $element" 
     testObj.testMyString("$prefix $element", mockBuilder) 
    } 
} 
0

它工作時,我改變了代碼這個

myArray.each { 
     def testStr = it 
     shouldFail(IllegalArgumentException) { 
      println "it = " + testStr 
      testObj.testMyString("$prefix $testStr", mockBuilder); 
     } 
    } 

我猜「它」是不是在內部封

+2

這並不是說它不可用,它只是一個不同的「它」。 –

2

每個封閉都有自己的「it」。在你的情況下,當「它」爲空時,它是shouldFail封閉的「it」而不是myArray.each的封閉。