Я написав цей клас, який робить кілька речей (можливо, це є порушенням Принципу єдиної відповідальності). Зараз я усвідомлюю, що в якійсь іншій частині проекту потрібен фрагмент цієї логіки, і так, як я збираюся його викрити, - це вилучення класу з моєї оригінальної системи, що перевіряється.
Я передбачаю, що зможу це зробити, не змінюючи тестового коду, але коли я закінчу, ви можете стверджувати, що тест вже не є одиничним тестом. Це буде тестування оригінального класу та класу, який я видобув. Іншими словами, у мене буде один тестовий випадок, але дві системи, які перевіряються.
Чи повинен я повернути тестовий код після того, як я закінчу? IE: Створіть ExtractedClassTest і перемістіть у нього всі відповідні тести з OriginalClassTest? Це здається, що це може бути трохи ризиковано: я можу втратити деяке покриття в процесі, це може бути не так просто, як переміщення тесту, і я в кінцевому підсумку переписую якийсь тестовий код, який, як я знаю, працював, але не може більше, тощо.
З іншого боку, якщо я залишлю OriginalClassTest таким, який є, я можу побачити, що це проблема з тестовим технічним обслуговуванням. Буде трохи заплутано дізнатися, де знаходяться тести ExtractedClass. Ваше перше враження буде, що його не існує. З часом, з великою кількістю виробничих кодексів, це може стати серйозною проблемою.
Я новачок у TDD, тому я хотів би поради експерта. Спасибі!