Il mio attuale lavoro è principalmente la scrittura di codice di test GUI per varie applicazioni su cui lavoriamo. Tuttavia, trovo che io tendo a copiare e incollare un sacco di codice all'interno dei test. Il motivo è che le aree che sto testando sono abbastanza simili da richiedere ripetizioni, ma non abbastanza simili per incapsulare il codice in metodi o oggetti. Trovo che quando cerco di usare classi o metodi in modo più esteso, i test diventano più ingombranti da mantenere e talvolta addirittura difficili da scrivere in primo luogo.
Invece, di solito copio una grande porzione di codice di test da una sezione e la incollo su un'altra, e apporto le modifiche minori di cui ho bisogno. Non uso metodi di codifica più strutturati, come l'utilizzo di più principi OO o funzioni.
Gli altri programmatori si sentono così quando scrivono il codice di prova? Ovviamente voglio seguire i principi DRY e YAGNI, ma trovo che il codice di test (codice di test automatico per i test della GUI in ogni caso) possa rendere questi principi difficili da seguire. O ho solo bisogno di più pratica di codifica e un migliore sistema generale di fare le cose?
EDIT: lo strumento che sto usando è SilkTest, che è in un linguaggio proprietario chiamato 4Test. Inoltre, questi test sono principalmente per le applicazioni desktop di Windows, ma ho anche provato le app Web utilizzando questa configurazione.