サイズが 1 であるにもかかわらず、このテスト ケースで「ノードが真実ではありません」という例外がスローされるのはなぜですか?
package foo.bar
import grails.test.*
import org.codehaus.jackson.JsonFactory
import org.codehaus.jackson.JsonNode
import org.codehaus.jackson.map.ObjectMapper
import org.junit.Test
class MyTest{
@Test
void testJSonNode() {
ObjectMapper mapper = new ObjectMapper(new JsonFactory())
JsonNode node = mapper.readTree('{"foo":"bar"}')
assert node.size() == 1
assert node.iterator().hasNext() == true
if (!node) {
throw new Exception("Node is not truthful")
}
}
}
背景情報:
if (!node)
変更しても例外はスローされませんif (node == null)
- これはGroovy Truthの問題だと思います
- node はorg.codehaus.jackson.node.ObjectNodeのインスタンスです
- これは org.codehaus.jackson:jackson-mapper-asl:1.6.5 で機能していました
- org.codehaus.jackson:jackson-mapper-asl:1.9.11 でこの問題が発生しています
- ObjectNode は Iterable を実装します