Моя поточна робота полягає в основному написанні тестового коду GUI для різних додатків, над якими ми працюємо. Однак я вважаю, що я схильний копіювати і вставляти багато коду в тести. Причиною цього є те, що області, які я тестую, мають тенденцію бути досить подібними, що потребують повторення, але не зовсім подібні, щоб інкапсулювати код у методи чи об'єкти. Я вважаю, що коли я намагаюсь більш широко використовувати класи або методи, тести стають більш громіздкими для підтримки, а іноді й відверто важко писати в першу чергу.
Натомість я зазвичай копіюю великий фрагмент тестового коду з одного розділу і вставляю його в інший, і вношу потрібні незначні зміни. Я не використовую більш структуровані способи кодування, такі як використання більше OO-принципів або функцій.
Чи почуваються інші кодери таким чином під час написання тестового коду? Очевидно, що я хочу слідувати принципам DRY та YAGNI, але я вважаю, що тестовий код (автоматизований код тестування для тестування GUI так чи інакше) може зробити ці принципи важкими для дотримання. Або мені просто потрібно більше практики кодування та кращої загальної системи дій?
EDIT: Інструмент, який я використовую, - SilkTest, який є власною мовою під назвою 4Test. Крім того, ці тести здебільшого використовуються для настільних додатків Windows, але я також перевіряв веб-додатки, використовуючи цю налаштування.