Tôi đang học TDD bằng cách sử dụng c #, theo như tôi biết kiểm tra sẽ thúc đẩy sự phát triển , đó là lần đầu tiên viết một bài kiểm tra thất bại sau khi viết mã tối thiểu để vượt qua bài kiểm tra sau đó thực hiện tái cấu trúc.
Nhưng người ta cũng nói rằng " Chương trình để giao diện, không phải thực hiện ", vì vậy hãy viết một giao diện trước . Đây là lúc sự nhầm lẫn của tôi bắt đầu, Nếu tôi viết Giao diện trước thì nó vi phạm hai điều
Mã được viết cho giao diện không được điều khiển bằng thử nghiệm .
Nó không phải là mức tối thiểu rõ ràng tôi có thể viết nó với một lớp đơn giản.
Tôi có nên bắt đầu bằng cách viết bài kiểm tra cho giao diện không? mà không thực hiện bất cứ điều gì tôi sẽ kiểm tra?
Nếu câu hỏi này nghe có vẻ ngớ ngẩn xin lỗi vì điều đó, nhưng tôi hoàn toàn bối rối. Có thể tôi đang dùng mọi thứ theo nghĩa đen.
contract
. Ví dụ, đây có thể ở dạng một lớp trừu tượng, mặc dù nó không phải là một lớp / phương thức ảo vì bạn không thể khởi tạo nó.
interface
cho tất cả mọi thứ. Aclass
cũng cung cấp một giao diện, bởi vì bạn có thể ẩn chi tiết triển khai trongprivate
các biến.