Qual è il modo migliore per eseguire TDD in modo che i test non siano troppo fragili ma forniscano ancora valore in termini di design?
wow Questa è una domanda non facile, dipende molto dall'ambito
fondamentalmente: mantenere il test pertinente all'ambito della soluzione e al tuo flusso, non al dettaglio dell'implementazione
i.e
hai bisogno di codificare un'implementazione per ottenere una lista ordinata:
hai alcuni casi:
[3] -> [3]
[2,5,1] -> [1,2,5]
Puoi scegliere molti algoritmi per farlo, ma scrivi test per controllare:
"quando ho [2,5,1] ed eseguo il metodo sort ottengo [1,2,5]" che è un test sul progetto non testate ogni passo dell'algoritmo perché quello è un dettaglio dell'implementazione, se scrivete test per l'implementazione dell'algoritmo quei test sono altamente accoppiati con l'algoritmo e quando cambiate l'algoritmo dovete cancellare quei test perché non sono più necessari
e questo è davvero difficile da realizzare, questo non significa che non bisogna scrivere test per l'implementazione dell'algoritmo, ma bisogna essere chiari sull'ambito e sui confini dei componenti, i test per l'implementazione dell'algoritmo sono preziosi in termini di ambito dell'algoritmo, ma non per l'ambito della soluzione, quindi mantenere i test pertinenti ai componenti del software
Articoli simili
- Pensi che Skype, Zoom o Microsoft Teams forniscano le migliori opzioni di videochiamata, e perché?
- Perché le compagnie telefoniche come la Apple fanno i loro telefoni così fragili?
- Ci sono sistemi operativi liberi e leggeri che possono eseguire file .exe e che non siano Windows?
- Quali pensi che siano le più grandi sfide nel campo dell'UX design nell'era digitale di oggi?