Mam obiekt w wyniku wywołania interfejsu API i chcę potwierdzić wartości zmiennej składowej.Czy warto przechwytywać AssertionError w testach JUnit?
Ta wartość może być jedną z dwóch oczekiwanych wartości w zależności od tego, co wywołanie API "widzi" jako pierwsze i które zostanie ustawione jako pierwsze. Więc jeśli asercja na jednej wartości nie powiedzie się, chcę zadeklarować inną wartość przed deklaracją testu jako niepowodzenia.
Jaki jest najlepszy sposób na zrobienie tego? Co mam teraz to:
try {
assertEquals("message", someObject.getValue1(), expectedValue1);
} catch(AssertionError ae) {
assertEquals("message", someObject.getValue1(), expectedValue2);
}
Po prostu nie jestem pewien, czy jest to dopuszczalna praktyka. Proszę skomentuj.
Dzięki, @Aquilon! W tym przypadku moje twierdzenia są pochowane w metodzie weryfikacji, która przyjmuje za parametry właściwości obiektu, na które muszę się powoływać. Tak naprawdę nie mogę przekazać dwóch oczekiwanych wartości dla tej samej właściwości bez zmiany sygnatury metody. Tak więc trzymam się pierwotnej próby ... łapię rozwiązanie, jednocześnie zauważając twoje rozwiązanie na przyszłość. – Shine