我有一个只有一个元素的linkedHashMap,我想比较它是否相等。因此,我编写了以下spock测试案例:
def "Get average value for a date key"() {
given:
def ex = ["08-2018": 13 as BigDecimal] as Map<String, Integer>
when:
def wta = new worktime_average()
def result = wta.get_time_vals(wtime, '08-2018') as Map<String, Integer>
then:
result.values()[0] == ex.values()[0] // Pass!
result.keySet() == ex.keySet() // Pass!
result == ex // Failed!!
}
失败说:
result == ex
| | |
| | [08-2018:13] (java.util.LinkedHashMap)
| false
[08-2018:13] (java.util.LinkedHashMap)
我不知道为什么。有任何猜测吗?
答案 0 :(得分:1)
在Groovy中,String
(单引号)不等同于GString
(双引号)-当它们用作Map键时通常会弹出。在设置/使用密钥之前,请致电String
或as String
来确保您的密钥为.toString()
。