Un po 'di contesto: prima di oggi dovevo aggiornare del codice SQL fornito da un altro mio collega, e dato che è uno script piuttosto grande, è archiviato come un file separato (che viene poi letto ed eseguito in fase di runtime). Mentre lo facevo, ho reintrodotto per errore due bug che avevamo qualche mese fa, ovvero:
- Per qualsiasi motivo il file ASCII è stato codificato in UTF-16 (il collega mi ha inviato via email il file, che potrebbe averlo causato).
- Lo script mancava delle istruzioni iniziali
SET
(richieste a causa di alcuni fattori di produzione in fase di produzione, ma non su un'installazione pulita localmente).
Dopo aver eseguito il debugging per circa un'ora (di nuovo), ho deciso di scrivere alcuni test unitari per garantire che ciò non si ripetesse mai più (e includere un modo rapido per risolverlo nel messaggio di asserzione per fornire una soluzione semplice per gli sviluppatori futuri).
Tuttavia, quando ho spinto questo codice, un altro collega (che è anche il nostro team leader) si avvicina a me e mi ha detto che non dovrei fare di nuovo queste cose perché:
"These things don't belong in unit tests"
"Unit tests should only be used to check the flow of your code"
Ora sono piuttosto conflittuale dal momento che continuo a pensare che quello che sto facendo non sia sbagliato, visto che questo bug non verrà reintrodotto in futuro, tuttavia questo collega lavora come senior e alla fine della giornata per decidere su cosa passiamo il nostro tempo. Cosa dovrei fare? Ho sbagliato a farlo in questo modo? È considerato una cattiva pratica?