Devo duplicare i metodi di uguaglianza nel progetto di test?

0

Ho letto molte domande su override di .equals e .hashcode solo a scopo di test.

Le classi My Domain hanno implementato .equals e .hashcode. Dovrei essere

1) Duplicazione di queste classi nel mio progetto di test

o

2) Utilizzo della classe di dominio. Equals nel mio progetto di test

L'unica giustificazione che posso vedere per il punto uno è se .equals e .hascode sono diversi nel progetto di test, tuttavia nel mio caso non lo sono. Quindi credo che il secondo punto sia la risposta.

Il motivo per cui chiedo è che sto cercando di seguire il principio del minimo stupore pronto per quando qualcun altro guarda il mio codice in futuro.

    
posta w0051977 23.01.2018 - 12:37
fonte

1 risposta

0

Hai già risposto alla domanda da solo. Se hai bisogno di due diversi tipi di paragoni di uguaglianza da qualche parte nel tuo codice - test o meno - devi ovviamente implementarne due diversi. E se ne hai bisogno solo, implementane solo uno. Il principio DRY si applica all'intero codice base, non solo al codice esterno ai test.

Assicurati di sovrascrivere object.Equals per il confronto che sembra più "naturale" per l'oggetto dominio, nel contesto del particolare programma, e dai all'altra uguaglianza di controllo un nome di funzione auto-descrittivo che lo rende chiaramente distinguibile dal primo.

    
risposta data 23.01.2018 - 13:01
fonte

Leggi altre domande sui tag