Prima di ottenere la risposta che stai cercando, devi decidere dove si trova la tua azienda nello spettro dei test:
- All'estrema destra c'è qualcosa come Test Driven Development, che dice che per ogni riga di codice che scrivi, devi avere un test fallito che qualche modifica o nuova linea di codice possa risolvere.
- Da qualche parte nel mezzo ci sono altre scuole di pensiero, trattano il codice come una scatola nera e testano solo il valore che viene fuori.
- All'estrema sinistra non hai test, o test sparsi.
A parte questo, quello che stai parlando di testing è un confine, qualcosa tra il tuo codice e qualcun altro (Web Server, Database, ecc.).
Chiediti, sarebbe utile avere test per il codice che riceve un modello (JSON?) proveniente dal server web e tradurlo in un modello di dati con cui puoi lavorare più facilmente (un modello JavaScript o POJO?)? Per me sarebbe un po 'prezioso, ma non importante come testare i miei strati interni (DataLayer, NetworkLayer, Business Logic, ecc.). E quali sono i costi per mantenere quei test. Anche nei miei posti di lavoro TDD più intransigenti, avevamo dei limiti in merito al fatto che abbiamo fatto poco o nessun test oltre.
Una delle grandi cose dei test ben scritti è che ti aiutano a trovare rapidamente ciò che sta causando un crash o un bug. Tuttavia, qualcosa che si avvicina a un confine, se il codice è SOLIDO, potrebbe già essere facile trovare il problema; probabilmente si interromperà solo quando il codice di terze parti ha cambiato il JSON in uscita, non all'interno del codice. Quindi per me un test non sarebbe meritato
Due pensieri in chiusura:
Non hai bisogno di TDD / test per avere una buona architettura, ma un buon TDD & i test assicurano (impongono) una buona architettura.
I test sui confini spesso diventano complicati e difficili da mantenere. In generale ci siamo concentrati sulla scrittura di buoni test sui livelli interni (DataLayer, NetworkLayer, Business Logic, ecc.).