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

使用AssertJ或JUnit断言标识

夏华藏
2023-03-14

基本上,问题是是否有AssertJ(首选)或JUnit断言:

objA == objB

我的测试类(CUT)扩展了JAXB的XMLAdapter。解组XML文件时,它应该保证相等的对象恰好存在一次。为了验证这一点,我的测试当前看起来是这样的(在示例中,标准ctor创建相等对象):

MyType obj = cut.unmarshal(new MyType());
assertThat(cut.unmarshal(new MyType()) == obj).isTrue();
assertThat(cut.foo() == obj).isTrue();

共有1个答案

蒙光华
2023-03-14

如果您使用的是AssertJ,则可以使用issameas方法来比较对象标识:

assertThat(cut.foo()).isSameAs(obj);
 类似资料:
  • 我试着 我在调试时获得和是。 如何在使用时断言大于条件

  • 我有两门课: 还有我的测试: 我希望它能通过,因为解包装可选,将转换为,在最后一个方法中,我只是比较字符串。 但它在最后一行失败了: 我不知道为什么可选包装没有打开

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

  • null 编辑:一个附加的非功能性需求是,测试应该可以很容易地通过附加的约束来扩展。在Hamcrest中,表达附加约束是相当容易的,例如。 依赖于列表索引的测试必须重新编号。在本例中,使用自定义条件的测试必须重写完整的条件(请注意,中的约束不限于子字符串检查)。

  • 有没有Hamcrest可以让我明确断言,返回对象的的方法的结果至少有一个对象包含具有特定值的属性? 例如: 测试下的方法返回一个的集合。我需要断言至少有一个人叫彼得。

  • 我正在阅读使用Assertj验证结果的测试类。偶尔,我会发现一个没有断言的断言。 是否有可能在开发周期的某个地方识别这些类?我的第一个猜测是使用自定义声纳规则。虽然我不明白应该如何定义这个方法后面应该跟一个断言(返回void的方法?)。