Groovy 比较Spock中的空字符串时不满足条件

Groovy 比较Spock中的空字符串时不满足条件,groovy,spock,Groovy,Spock,我试图检查两个字符串是否相等,但我正在点击。两个字符串均为空: Condition not satisfied: versionTagPrefix == "" | | "" false 2 differences (0% similarity) ("") (--) 我也尝试过平等: Condition not satisfied:

我试图检查两个字符串是否相等,但我正在点击。两个字符串均为空:

Condition not satisfied:

versionTagPrefix == ""
|                |
""               false
                 2 differences (0% similarity)
                 ("")
                 (--)
我也尝试过平等:

Condition not satisfied:

"".equals(versionTagPrefix)
   |      |
   false  ""
版本:

compile 'org.codehaus.groovy:groovy-all:2.0.1'
testCompile "org.spockframework:spock-core:0.7-groovy-2.0"

据我所知,groovy有许多字符串的实现。
当您在输出/错误流中看到消息时,您可能看到的是
toString()
的值,而不是对象的实际内容

要深入并调试,请对对象使用
.properties
属性

例如: 1 org.codehaus.groovy.runtime.GStringImpl 2.java.lang.String 并且可以有许多实现。。。。
虽然在本例中,
s1==s2
,但您可能会遇到
s1!=s2
s1.toString()==s2.toString()


据我所知,groovy有许多字符串的实现。
当您在输出/错误流中看到消息时,您可能看到的是
toString()
的值,而不是对象的实际内容

要深入并调试,请对对象使用
.properties
属性

例如: 1 org.codehaus.groovy.runtime.GStringImpl 2.java.lang.String 并且可以有许多实现。。。。
虽然在本例中,
s1==s2
,但您可能会遇到
s1!=s2
s1.toString()==s2.toString()


据我所知,groovy有许多字符串的实现。
当您在输出/错误流中看到消息时,您可能看到的是
toString()
的值,而不是对象的实际内容

要深入并调试,请对对象使用
.properties
属性

例如: 1 org.codehaus.groovy.runtime.GStringImpl 2.java.lang.String 并且可以有许多实现。。。。
虽然在本例中,
s1==s2
,但您可能会遇到
s1!=s2
s1.toString()==s2.toString()


据我所知,groovy有许多字符串的实现。
当您在输出/错误流中看到消息时,您可能看到的是
toString()
的值,而不是对象的实际内容

要深入并调试,请对对象使用
.properties
属性

例如: 1 org.codehaus.groovy.runtime.GStringImpl 2.java.lang.String 并且可以有许多实现。。。。
虽然在本例中,
s1==s2
,但您可能会遇到
s1!=s2
s1.toString()==s2.toString()


您确定两个字符串都是空的吗?
versionTagPrefix.bytes的输出是什么?
versionTagPrefix
确实是字符串吗?versionTagPrefix是java.lang.string的实例吗?如果是spock,您可以使用
!versionTagPrefix
。这里不需要比较。您确定两个字符串都是空的吗?
versionTagPrefix.bytes的输出是什么?
versionTagPrefix
确实是字符串吗?versionTagPrefix是java.lang.string的实例吗?如果是spock,您可以使用
!versionTagPrefix
。这里不需要比较。您确定两个字符串都是空的吗?
versionTagPrefix.bytes的输出是什么?
versionTagPrefix
确实是字符串吗?versionTagPrefix是java.lang.string的实例吗?如果是spock,您可以使用
!versionTagPrefix
。这里不需要比较。您确定两个字符串都是空的吗?
versionTagPrefix.bytes的输出是什么?
versionTagPrefix
确实是字符串吗?versionTagPrefix是java.lang.string的实例吗?如果是spock,您可以使用
!versionTagPrefix
。这里没有必要进行比较。
groovy:000> i=10; s1="$i"; "type=${s1.class}\n
                            content=${s1.properties}\n
                            out=${s1.toString()}"
===> type=class org.codehaus.groovy.runtime.GStringImpl
     content=[values:[10],
              class:class org.codehaus.groovy.runtime.GStringImpl,
              bytes:[49, 48], strings:[, ], valueCount:1]
     out=10
groovy:000>s2="10"; "type=${s2.class}\n
                        contents=${s2.properties}\n
                        out=${s2.toString()}"
===> type=class java.lang.String
     contents=[class:class java.lang.String, bytes:[49, 48], empty:false]
     out=10
assert versionTagPrefix?.toString() == ""