Abbiamo una suite di test che utilizza principalmente asserzioni JUnit con i dispositivi di controllo Hamcrest. Uno dei nostri team ha iniziato a sperimentare con AssertJ e ha impressionato le persone con la sua sintassi, flessibilità e dichiarazione. C'è una funzione che JUnit fornisce che non riesco a trovare un equivalente in AssertJ: aggiungendo un messaggio di errore personalizzato.Puoi aggiungere un messaggio personalizzato ad AssertJ assertThat?
Stiamo spesso confrontando oggetti che non sono fatti per la leggibilità umana e avranno ID o UUID dall'aspetto casuale ed è impossibile dire cosa dovrebbero essere dai dati che contengono. Questa è una situazione inevitabile per il nostro codebase, purtroppo, come parte dello scopo che soddisfa è la mappatura dei dati tra altri servizi senza necessariamente capire di cosa si tratta.
In JUnit, il metodo assertThat
fornisce una versione con un parametro String reason
prima del parametro Matcher<T>
. Ciò rende banale l'aggiunta di una breve stringa di debug che fa luce sul problema, come quello che il confronto dovrebbe significare per un essere umano.
AssertJ, d'altra parte, fornisce un jillion diverso genericized static assertThat
metodi che restituiscono una qualche forma di interface Assert o una delle sue numerose classi di implementazione. Questa interfaccia non fornisce un modo standard per impostare un messaggio personalizzato da includere negli errori.
C'è un modo per ottenere questa funzionalità dall'API di AssertJ o una delle sue estensioni senza dover aggiungere create a custom assert class for every assert type?