Hôm nay chúng tôi đã đào tạo TDD và tìm thấy điểm hiểu lầm sau đây.
Nhiệm vụ dành cho tổng số trả về "1,2" đầu vào là 3. Những gì tôi đã viết (bằng C #) là:
numbers = input.Split(',');
return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct
Nhưng những người khác thích làm theo cách khác. Đầu tiên, đối với đầu vào "1,2", họ đã thêm mã sau đây:
if (input == "1,2")
return 3;
Sau đó, họ giới thiệu thêm một bài kiểm tra cho đầu vào "4,5" và thay đổi triển khai:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
Và sau đó họ nói "Được rồi, bây giờ chúng ta thấy mô hình" và thực hiện những gì tôi đã làm ban đầu.
Tôi nghĩ rằng cách tiếp cận thứ hai phù hợp hơn với định nghĩa TDD nhưng ... chúng ta có nên nghiêm ngặt về nó không? Đối với tôi, có thể bỏ qua các bước bé tầm thường và kết hợp chúng thành "hai bước" nếu tôi chắc chắn rằng tôi sẽ không bỏ qua bất cứ điều gì. Tôi có lầm không?
Cập nhật. Tôi đã phạm sai lầm khi không làm rõ nó không phải là thử nghiệm đầu tiên. Đã có một số thử nghiệm vì vậy "return 3" thực sự không phải là đoạn mã đơn giản nhất để đáp ứng yêu cầu.