2

複数の文字列をテストする必要があるテストケースがあり、それらは String[] として初期化されます

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

print ステートメントは、それ"it"が null であることを示しています。私は何を間違っていますか?

4

3 に答える 3

3

各変数に名前を付けると、動作するはずです:

myArray.each { element ->
    shouldFail(IllegalArgumentException) {
        println "it = $element"
        testObj.testMyString("$prefix $element", mockBuilder)
    }
}
于 2012-05-11T14:42:04.060 に答える
2

各クロージャには独自の「それ」があります。「it」がnullの場合、それはshouldFailクロージャの「it」であり、クロージャではありませんmyArray.each

于 2012-05-11T14:49:57.840 に答える
0

コードをこれに変更するとうまくいきました

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

「それ」はインナークロージャーでは利用できないと思います

于 2012-05-11T13:51:40.483 に答える