Tôi bắt đầu (cố gắng ít nhất) để viết mã bằng các nguyên tắc TDD và tôi có câu hỏi này: tôi cần viết bao nhiêu bài kiểm tra trước khi bắt đầu viết mã?Có bao nhiêu đơn vị thử nghiệm trước khi bắt đầu mã hóa một phương pháp/lớp học?
Lấy ví dụ một giả thuyết Math
lớp học và phương pháp Divide(int a, int b)
.
a) Tôi có phải kiểm tra đầy đủ tất cả các phương thức của Math
lớp (Sum
, Average
, ...) trước khi bắt đầu mã hóa Math
?
b) Tôi có phải kiểm tra đầy đủ phương pháp Divide
, khẳng định ví dụ để chia cho số không, trước khi bắt đầu mã hóa phương pháp?
c) Hoặc tôi có thể tạo một xác nhận thử nghiệm đơn giản và xác minh rằng nó không thành công, viết mã và kiểm tra xem có ổn không, gặt lại quá trình cho từng xác nhận của phương pháp?
Tôi nghĩ tùy chọn c) là chính xác, nhưng tôi không thể tìm thấy câu trả lời cho nó (tôi đã thực hiện một số tìm kiếm nhưng không thể tìm thấy câu trả lời dứt khoát).
Phát triển theo hướng thử nghiệm rất nhiều về thiết kế, vì vậy nếu bạn phải hỏi, tôi khuyên bạn nên biết thêm về nguyên tắc thiết kế. Bạn có thể red-green-refactor tất cả các ngày dài, nhưng mà không có một nền tảng tốt trong thiết kế, cuối cùng bạn sẽ mã mình vào một góc. –
Người thuần túy TDD chắc chắn sẽ không chủ trương mã hóa toàn bộ hành vi của phương pháp trước. Một lần kiểm tra không thành công. –
TDD không phải là về việc làm cho "một khẳng định" vượt qua một trong hai (đó là những gì * c) * được đề cập một cách rõ ràng). –