Mi sono sempre chiesto quale sia esattamente il significato di reale e atteso in assertEquals
in librerie come TestNG.assertEquals, cosa è effettivo e cosa è previsto?
Se leggiamo il Docs Java vediamo:
public static void assertEquals(... actual, ... expected)
Parameters:
actual - the actual value
expected - the expected value
Dalla mia comprensione del valore expected
è il conosciuto uno, quindi quello che ci aspettiamo, e il actual
uno è quello che vogliamo verificare. Ad esempio, supponiamo di voler testare una funzione fooBar
che deve sempre restituire 56
.
In tal caso, farei: assertEquals(sth.fooBar(), 56)
. Ma con una ricerca rapida su GitHub sembra che le persone lo facciano al contrario, quindi assertEquals(56, sth.fooBar())
. Ma come può il valore atteso essere sth.fooBar()
quando non sappiamo nemmeno quel valore? Sembra che sth.fooBar()
sia il valore reale che confrontiamo con l'aspettativa che già conosciamo.
So che non esiste alcuna differenza sulla correttezza di un test ma vorrei seguire il modo "corretto".
Probabilmente lo hanno fatto di fretta e non si sono interessati all'ordine di denominazione tanto quanto voi :) – ControlAltDel