Подтвердите личность с помощью AssertJ или JUnit

Редактировать II

По сути, вопрос заключается в том, есть ли утверждение AssertJ (предпочтительно) или JUnit для:

objA == objB

Редактировать I

Мой тестируемый класс (CUT) расширяет _ 2_. При демаршалинге XML-файла следует гарантировать, что одинаковые объекты существуют ровно один раз. Чтобы проверить это, мой тест в настоящее время выглядит так (в этом примере стандартный ctor создает одинаковые объекты):

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

Есть ли способ явно подтвердить личность с помощью AssertJ или JUnit?

Исходный пост

В моем тестируемом классе (CUT) есть метод (например, foo), который должен гарантировать, что возвращенные объекты, которые равны, существуют ровно один раз. В настоящее время я использую следующий оператор assert:

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

Есть ли способ явно подтвердить личность с помощью AssertJ или JUnit?


person beatngu13    schedule 02.11.2016    source источник
comment
Что вы имеете в виду, что объект существует только один раз. Есть ли ориентиры на уникальный объект ?! Вы имеете в виду: foo () должен возвращать другой объект каждый раз, когда вы его вызываете ?!   -  person GhostCat    schedule 02.11.2016
comment
@GhostCat Equal объекты должны существовать ровно один раз.   -  person beatngu13    schedule 02.11.2016
comment
Невозможно подтвердить, что какой-либо другой копии не существует, плавающей в другом углу JVM.   -  person chrylis -cautiouslyoptimistic-    schedule 02.11.2016
comment
@chrylis Я знаю, я говорю только об объектах, возвращаемых foo.   -  person beatngu13    schedule 02.11.2016
comment
Вы ищете isSameAs?   -  person chrylis -cautiouslyoptimistic-    schedule 02.11.2016
comment
Это будет нормально, если вы не хотите гарантировать, что существуют идентичные дубликаты. Возможно, вам будет удобнее использовать assertSame() junit.sourceforge.net/javadoc/org /junit/Assert.html   -  person d.j.brown    schedule 02.11.2016
comment
@chrylis Именно, спасибо! Не могли бы вы добавить это в качестве ответа?   -  person beatngu13    schedule 02.11.2016


Ответы (1)


Если вы используете AssertJ, вы можете использовать метод isSameAs для сравнения идентичности объекта:

assertThat(cut.foo()).isSameAs(obj);
person chrylis -cautiouslyoptimistic-    schedule 02.11.2016