当前位置: 首页 > 知识库问答 >
问题:

如何断言列表与TestNG相等?

拓拔高畅
2023-03-14

我找到了junit的解决方案,但需要TestNG的解决方案。还有比编写一个自己的for循环更有用的想法吗?

共有1个答案

淳于禄
2023-03-14

对于列表比较,不需要单独的方法。可以通过org.testng.assert#assertequals(Object,Object)比较两个列表。

如果ab两个列表非null,则调用assert.assertequals(a,b)意味着随后将调用a.equals(b)

java.util.list#equals就是您所需要的,如Javadoc中所述:

将指定对象与此列表进行相等性比较。当且仅当指定的对象也是列表时,两个列表具有相同的大小,并且两个列表中所有对应的元素对相等时,返回true。(如果(e1==null?e2==null:e1.equals(e2)),两个元素e1和e2相等。)换句话说,如果两个列表以相同的顺序包含相同的元素,则定义为相等。此定义确保equals方法在列表接口的不同实现中正常工作。

 类似资料:
  • 更新 更准确地说。我想知道这两个列表是否有相同的对象,两个列表都没有额外的对象,顺序无关紧要。例如:

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • 嘿,我有个问题要解决。我正在将selenium与纯java和test NG一起使用。在测试类中,我想调用一个方法,如果该方法引发异常,我想让测试失败。方法如下: 我想从测试类调用它,如果它(insert address2方法)抛出异常,我希望测试失败。 这是类测试断言语句 有人能告诉我什么是语法,以及如何测试insertAddress2方法中从不同类引发的异常吗

  • 如果断言失败,我如何在TestNG中继续测试执行?如何在TestNG的HTML报告中报告失败? 当我运行以下代码时,断言后的行将被执行,但在报告中没有列出断言失败:

  • 在我的JUnit测试中,我将预期的XML文件与解析器创建的虚拟文档进行比较: 但区别声称并不相似。那么如何正确比较这两个XML文档呢?

  • 有时候我们需要匹配后面跟着特定模式的一段模式。比如,我们要从 1 turkey costs 30€ 这段字符中匹配价格数值。 我们需要获取 € 符号前面的数值(假设价格是整数)。 那就是前瞻断言要做的事情。 前瞻断言 语法为:x(?=y),它表示 “匹配 x, 仅在后面是 y 的情况"” 那么对于一个后面跟着 € 的整数金额,它的正则表达式应该为:\d+(?=€)。 let str = "1 tu