Ho un oggetto come risultato di una chiamata API e voglio affermare i valori di una variabile membro.È una buona idea catturare AssertionError nei test di JUnit?
Questo valore può essere uno dei due valori previsti a seconda di ciò che l'API chiama "vede" per primo e imposta prima. Quindi, se l'asserzione su un valore fallisce, voglio dichiarare un altro valore prima di dichiarare il test come un fallimento.
Qual è il modo migliore per farlo? Quello che ho adesso è:
try {
assertEquals("message", someObject.getValue1(), expectedValue1);
} catch(AssertionError ae) {
assertEquals("message", someObject.getValue1(), expectedValue2);
}
Non sono sicuro se questa è una pratica accettabile. Per favore, commenta.
Grazie, @Aquilon! In questo caso, le mie affermazioni sono sepolte in un metodo di verifica che prende come parametri le proprietà dell'oggetto per cui ho bisogno di affermarsi. Quindi non posso davvero passare due valori previsti per la stessa proprietà senza modificare la firma del metodo. Quindi mi sto attenendo al tentativo originale ... prendi la soluzione mentre noti la tua soluzione per il futuro. – Shine