Đây có thể là một câu hỏi khá ngớ ngẩn vì tôi đang ở những nỗ lực đầu tiên của mình tại TDD. Tôi yêu cảm giác tự tin mà nó mang lại và nói chung là cấu trúc mã tốt hơn nhưng khi tôi bắt đầu áp dụng nó vào một cái gì đó lớn hơn các ví dụ đồ chơi một lớp, tôi gặp khó khăn.
Giả sử, bạn đang viết một thư viện các loại. Bạn biết những gì nó phải làm, bạn biết một cách chung về cách nó được triển khai (kiến trúc khôn ngoan), nhưng bạn cứ "khám phá" rằng bạn cần thay đổi API công khai khi bạn viết mã. Có lẽ bạn cần chuyển đổi phương thức riêng tư này thành mô hình chiến lược (và bây giờ cần phải vượt qua một chiến lược bị chế giễu trong các thử nghiệm của bạn), có lẽ bạn đã đặt sai trách nhiệm ở đây và ở đó và chia một lớp hiện có.
Khi bạn đang cải thiện mã hiện có, TDD có vẻ rất phù hợp, nhưng khi bạn viết mọi thứ từ đầu, API bạn viết kiểm tra sẽ hơi "mờ" trừ khi bạn thiết kế lớn trước. Bạn làm gì khi bạn đã có 30 bài kiểm tra về phương pháp có chữ ký của nó (và đối với phần đó, hành vi) đã thay đổi? Đó là rất nhiều thử nghiệm để thay đổi một khi chúng cộng lại.