gpt4 book ai didi

java - 使用包含在 testng 中断言

转载 作者:行者123 更新时间:2023-11-30 07:58:16 24 4
gpt4 key购买 nike

我正在使用 Java 和 testng。我有两组字符串:validSet 和actualSet。我想通过断言检查actualSet中的所有内容都在validSet中(即actualSet(- validSet。(我正在使用(-表示是的子集)。有一个assertContains(desc, collection1, object)。我尝试了这个,但它采用了我的actualSet并将其放入像“[item1,item2,item3]”这样的字符串形式,而不是将其视为一个集合。

有一个包含两个集合的assertCollectionEquals()。我想如果我可以删除 validSet 中不包含在 effectiveSet 中的所有内容,那么我可以检查两者是否相等。如果不是,那么我就知道 validSet 中不包含actualSet。

我可以做如下的事情:

for (String act : actual ) {
assertTrue( act + " is not valid", validSet.contains(act);
}

但是集合断言的好处是它们将列出不在 validSet 中的每个字符串,而上面的示例将仅列出第一个遇到的字符串,然后失败。

我正在尝试考虑调用的方法,以便比较两个集合应该相等。如何从一组中删除另一组中不存在的所有值?

谢谢

最佳答案

一种解决方案可能是使用循环构建错误消息,然后在循环后使用该错误消息进行断言。像这样的东西:

  boolean fail = false ;
List<String> actNotInValid = new ArrayList<>();
for(String act: actual) {
if(!validSet.contains(act)) {
fail = true ;
actNotInValid.add(act);
}
}

assertFalse(actNotInValid.toString(), fail);

关于java - 使用包含在 testng 中断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com