Tôi đã viết lớp này làm một vài điều (có lẽ đây là vi phạm Nguyên tắc Trách nhiệm duy nhất). Bây giờ tôi nhận ra rằng một số phần khác của dự án cần một phần logic đó và cách tôi sẽ trình bày nó là trích xuất một lớp ra khỏi Hệ thống Kiểm tra ban đầu của tôi.
Tôi dự đoán có thể làm điều này mà không phải thay đổi bất kỳ mã kiểm tra nào, nhưng khi tôi hoàn thành, bạn có thể lập luận rằng bài kiểm tra không còn là bài kiểm tra đơn vị nữa. Nó sẽ kiểm tra lớp gốc và lớp tôi đã trích xuất. Nói cách khác, tôi sẽ có một trường hợp thử nghiệm, nhưng hai hệ thống đang được thử nghiệm.
Tôi có phải cấu trúc lại mã kiểm tra sau khi hoàn thành không? IE: Tạo ExtractedClassTest và di chuyển tất cả các bài kiểm tra có liên quan từ OriginalClassTest vào đó? Điều này có vẻ như có một chút rủi ro: Tôi có thể mất một số phạm vi bảo hiểm trong quá trình, nó có thể không đơn giản như di chuyển một bài kiểm tra và cuối cùng tôi đã viết lại một số mã kiểm tra mà tôi biết đã từng làm việc nhưng có thể không còn nữa, Vân vân.
Mặt khác, nếu tôi rời khỏi OriginalClassTest, tôi có thể thấy đây là sự cố bảo trì thử nghiệm. Sẽ hơi khó hiểu khi tìm thấy các bài kiểm tra của ExtractedClass. Ấn tượng đầu tiên của bạn sẽ là nó không tồn tại. Theo thời gian với rất nhiều tái cấu trúc mã sản xuất, điều này có thể trở thành một vấn đề nghiêm trọng.
Tôi mới tham gia TDD nên tôi muốn một lời khuyên của chuyên gia. Cảm ơn!