我们如何在键和值上比较两个不区分大小写的哈希图



我有两个值相同但大小写不同的映射,无论是键还是值。断言时,我需要将其作为pass。我知道可以使用不区分大小写的Treemap选项,但它只验证键,而不验证值。有没有一种方法可以在键和值对中比较两个映射,而不考虑大小写?

map1 = { "Object" : "Java", "Scripting" : "Javascript" } // value Javascript with 's'
map1 = { "object" : "Java", "Scripting" : "JavaScript" } // key Object with 'o'

我使用assertj核心,在断言这两个映射时,由于大小写不同,我会出错。

您可以使用ElementComparator:使用AssertJ的方法

assertThat(actualMap.entrySet())
.usingElementComparator(
Map.Entry.<String, String>comparingByKey(String.CASE_INSENSITIVE_ORDER)
.thenComparing(Map.Entry::getValue, String.CASE_INSENSITIVE_ORDER)
)
.containsExactlyInAnyOrderElementsOf(expectedMap.entrySet());

相关内容

最新更新