Ich habe ein Objekt als Ergebnis eines API-Aufrufs und ich möchte die Werte einer Member-Variable bestätigen.Ist es eine gute Idee, AssertionError in JUnit-Tests zu fangen?
Dieser Wert kann einer der zwei erwarteten Werte sein, abhängig davon, was der API-Aufruf zuerst sieht und setzt. Wenn also die Assertion für einen Wert fehlschlägt, möchte ich einen anderen Wert angeben, bevor der Test als Fehler deklariert wird.
Was ist der beste Weg, dies zu tun? Was ich gerade habe ist:
try {
assertEquals("message", someObject.getValue1(), expectedValue1);
} catch(AssertionError ae) {
assertEquals("message", someObject.getValue1(), expectedValue2);
}
Ich bin nur nicht sicher, ob dies eine akzeptable Praxis ist. Bitte kommentieren.
Danke, @Aquilon! In diesem Fall sind meine Behauptungen in einer Überprüfungsmethode verborgen, die als Parameter die Eigenschaften des Objekts annimmt, für das ich Geltendmachen muss. Daher kann ich zwei erwartete Werte für dieselbe Eigenschaft nicht wirklich übergeben, ohne die Signatur der Methode zu ändern. Also bleibe ich beim ursprünglichen Versuch ... Lösung zu fangen, während ich Ihre Lösung für die Zukunft notiere. – Shine