我有一个包含一个值为GString的参数的列表。当我通过Hamcrest进行比较时,我得到String不是GString失败,即使作为字符串进行比较时内容匹配
在比较过程中,让Hamcrest将Gstring解析为string的正确方法是什么?一种解决方法是在我将实际的Gstring添加到列表中时,对它调用.toString()
,但这并不理想
@Test
def stackOverflow() {
given:
// values
def v1 = '01'
def v2 = '02'
// a groovy string containing them
def param = "${v1}:${v2}"
// a matcher using a concrete string
def matcher = Matchers.equalTo("01:02")
when:
// add actual into a list
def mylist = [param]
then:
// check that actual Gstring matches expected String and fail
that mylist, Matchers.hasItem(matcher)
}
错误
ondition not satisfied:
that mylist, Matchers.hasItem(matcher)
| | |
| [01:02] class org.hamcrest.Matchers
false
Expected: a collection containing "01:02"
but: mismatches were: [was <01:02>]
1条答案
按热度按时间qgelzfjb1#
在声明变量时,只需使用
String
而不是def
。在Groovy Web Console中试用
p.s.
@Test
不属于斯波克,应该删除。