Mon travail actuel consiste principalement à écrire du code de test GUI pour diverses applications sur lesquelles nous travaillons. Cependant, je trouve que j'ai tendance à copier et coller beaucoup de code dans les tests. La raison en est que les zones que je teste ont tendance à être assez similaires pour nécessiter une répétition mais pas assez similaires pour encapsuler du code dans des méthodes ou des objets. Je trouve que lorsque j'essaie d'utiliser plus largement les classes ou les méthodes, les tests deviennent plus lourds à maintenir et parfois carrément difficiles à écrire en premier lieu.
Au lieu de cela, je copie généralement un gros morceau de code de test d'une section et le colle dans une autre, et j'apporte les modifications mineures dont j'ai besoin. Je n'utilise pas de méthodes de codage plus structurées, telles que l'utilisation de plus de principes ou de fonctions OO.
Les autres codeurs se sentent-ils ainsi lors de l'écriture du code de test? Évidemment, je veux suivre les principes DRY et YAGNI, mais je trouve que le code de test (code de test automatisé pour les tests GUI de toute façon) peut rendre ces principes difficiles à suivre. Ou ai-je juste besoin de plus de pratique de codage et d'un meilleur système global de faire les choses?
EDIT: L'outil que j'utilise est SilkTest, qui est dans un langage propriétaire appelé 4Test. De plus, ces tests concernent principalement les applications de bureau Windows, mais j'ai également testé des applications Web à l'aide de cette configuration.