Recentemente ho iniziato un nuovo progetto per ri-implementare una parte fondamentale dell'automazione. Dato che è molto importante, lo faccio su TDDing in modo da poter testare vari scenari di base e cose che sappiamo che il vecchio sistema non funziona.
Nel fare questo, mi trovo a creare alcuni test "sandbox", che esercitano algoritmi "candidati" in completo isolamento, così posso scegliere quello che meglio soddisfa i requisiti. Ho anche creato alcuni test per capire perché altri test stanno fallendo, che di nuovo sono codificati in modo "sandbox" e non testano il codice di produzione attuale (hanno invece una semplificazione dell'ambiente di produzione che posso modificare fino a trova il problema / causa / soluzione). Nessuno di questi ha un valore costante per la regressione; una volta che scelgo un algoritmo, non potrò mai usare gli altri, e una volta che un test mostra il motivo per cui un altro test fallisce, posso correggere il test iniziale (o il suo codice di produzione esercitato) e verificare la correttezza, e non mi interessa più che l'altro test sia duro l'ambiente di esercizio codificato non funziona ancora.
Durante l'apprendimento del TDD mi è stato insegnato che non si è MAI eliminato un test di unità; anche se lo scopo originale del test è diventato irrilevante, il codice all'interno del test può essere utile ad altri sviluppatori come modello, oppure il test può essere rifattorizzato per altri scopi successivamente. Invece, se un test è diventato ridondante o irrilevante e non dovrebbe più essere eseguito, passato o fallito, dovrebbe essere ignorato.
Questa è la posizione "generalmente accettata" sull'ignorare i test? Questo ha il potenziale di abuso (ad es. "Non credo che pensi sia più importante, e fallisce, quindi lo ignorerò semplicemente")?