2017-04-06 7 views
0

Ich habe Schwierigkeiten, einen Weg zu finden, um zwei Objekte auf tiefe Ungleichheit (Feld für Feld) mit jUnit oder/und AssertJ zu testen.Java-Testtiefe nicht gleich

Gibt es einen Weg?

So etwas wie das.

not(assertThat(mSubjectManager.getSubjectById(subjectId)) 
       .isEqualToComparingFieldByField(subject)); 
+0

Mögliches Duplikat von [Wie bestätige ich die Gleichheit zweier Klassen ohne eine equals-Methode?] (Http://stackoverflow.com/questions/12147297/how-do-i-assert-equality-on-two-classes-) Ohne-eine-gleich-Methode) – developer

+0

Junit hat assertNotEquals, aber Sie müssen .equals() für das Objekt selbst definieren – Ishnark

+0

Dies wäre ein seltsamer Test. Wenn Sie möchten, dass etwas nicht gleich ist, sollten Sie jedes Feld überprüfen, das sich unterscheiden muss. Ich kann mir keine Situation vorstellen, in der das, wonach du fragst, ein gültiger Fall ist. –

Antwort

0

Mit AssertJ, ich denke, Sie Condition Umwickeln ein tiefes Gleichen überprüfen schaffen könnten und es schlägt fehl, wenn tief Gleichen, ein bisschen komisch, aber funktionieren könnten.