Java 使用AssertJ或JUnit断言标识 编辑二

Java 使用AssertJ或JUnit断言标识 编辑二,java,junit,assertj,Java,Junit,Assertj,基本上,问题是对于以下内容是否有AssertJ(首选)或JUnit断言: objA == objB 编辑一 我的测试中的类(CUT)扩展了JAXB的。当对XML文件进行解组时,它应该保证相等的对象只存在一次。为了验证这一点,我的测试当前如下所示(在示例中,标准ctor创建相等的对象): 有没有办法用AssertJ或JUnit显式断言标识 原职 我的被测类(CUT)有一个方法(例如foo),它应该保证返回的相等对象只存在一次。目前,我正在使用以下assert语句: assertThat(cut.

基本上,问题是对于以下内容是否有AssertJ(首选)或JUnit断言:

objA == objB
编辑一 我的测试中的类(CUT)扩展了JAXB的。当对XML文件进行解组时,它应该保证相等的对象只存在一次。为了验证这一点,我的测试当前如下所示(在示例中,标准ctor创建相等的对象):

有没有办法用AssertJ或JUnit显式断言标识

原职 我的被测类(CUT)有一个方法(例如
foo
),它应该保证返回的相等对象只存在一次。目前,我正在使用以下assert语句:

assertThat(cut.foo() == obj).isTrue();

有没有办法用AssertJ或JUnit显式断言标识?

如果您使用AssertJ,可以使用
isSameAs
方法来比较对象标识:

assertThat(cut.foo()).isSameAs(obj);

“对象只存在一次”是什么意思。任何指向唯一对象的参考点?!你的意思是:foo()应该在每次调用它时返回不同的对象吗@GhostCat Equal对象应该只存在一次。无法确认JVM的另一个角落中不存在浮动的其他副本。您是否正在寻找
isSameAs
?除非您希望确保存在相同的副本,否则这将很好。您可能会发现使用
assertSame()
assertThat(cut.foo()).isSameAs(obj);