Java 断言自动化测试中没有两个元素是相同的

Java assert that no two elements are the same in automation test

我正在尝试编写一个 selenium 自动化测试,以确保元素数组中没有重复元素。

例如有一个数组 ["Andy", "Bob", "Charles", "David", "David"]

我想编写一个自动化测试,断言没有显示重复的名称。以下似乎不太有效...

assertThat(getArray(), is(not(getArray())));

如何编写断言语句来检查数组中的每一项以确保没有重复项?

将您的数组转换为集合:

Set mySet = new HashSet(Arrays.asList(someArray));

然后断言mySet.size() == someArray.length。将数组变成一个集合会折叠重复项,从而减小大小;如果大小已经减小,你知道有重复。

还有一个解决办法。假设 "names" 是您的数组。由于 add() 将 return false 如果该项目将是非唯一的:

Set tempSet = new HashSet();
for (String str : names) {
   assertTrue(tempSet.add(str));
}