Meine derzeitige Aufgabe besteht hauptsächlich darin, GUI-Testcode für verschiedene Anwendungen zu schreiben, an denen wir arbeiten. Ich finde jedoch, dass ich dazu neige, viel Code in Tests zu kopieren und einzufügen. Der Grund dafür ist, dass die Bereiche, die ich teste, in der Regel ähnlich genug sind, um wiederholt werden zu müssen, aber nicht ähnlich genug , um Code in Methoden oder Objekte zu kapseln. Ich finde, wenn ich versuche, Klassen oder Methoden ausgiebiger zu verwenden, werden Tests umständlicher zu warten und manchmal überhaupt erst schwer zu schreiben.
Stattdessen kopiere ich normalerweise einen großen Teil des Testcodes aus einem Abschnitt, füge ihn in einen anderen ein und nehme alle erforderlichen geringfügigen Änderungen vor. Ich verwende keine strukturierteren Codierungsmethoden, wie z. B. mehr OO-Prinzipien oder -Funktionen.
Fühlen sich andere Codierer beim Schreiben von Testcode so? Natürlich möchte ich den DRY- und YAGNI-Prinzipien folgen, aber ich finde, dass Testcode (automatisierter Testcode für GUI-Tests sowieso) es schwierig machen kann, diese Prinzipien zu befolgen. Oder brauche ich einfach mehr Codierungspraxis und ein besseres Gesamtsystem?
BEARBEITEN: Das Tool, das ich verwende, ist SilkTest, das in einer proprietären Sprache namens 4Test vorliegt. Außerdem sind diese Tests hauptsächlich für Windows-Desktopanwendungen gedacht, aber ich habe auch Webanwendungen mit diesem Setup getestet.