Tôi muốn giới thiệu khái niệm về kiểm tra đơn vị (và kiểm tra nói chung) cho các đồng nghiệp của tôi; ngay bây giờ không có bài kiểm tra nào cả và mọi thứ được kiểm tra bằng cách thực sự thực hiện các tác vụ thông qua UI để xem kết quả mong muốn. Như bạn có thể tưởng tượng, mã được kết hợp rất chặt chẽ với việc triển khai chính xác - thậm chí dẫn đến mã phải nằm trong một lớp và được sử dụng lại trên toàn hệ thống được sao chép và dán qua các phương thức.
Do yêu cầu thay đổi, tôi đã được yêu cầu sửa đổi một mô-đun mà tôi đã viết trước đó và nó được ghép khá lỏng lẻo (không nhiều như tôi muốn, nhưng tốt nhất tôi có thể nhận được mà không phải giới thiệu nhiều khái niệm khác). Tôi đã quyết định bao gồm một bộ thử nghiệm đơn vị với mã sửa đổi của mình để "chứng minh" rằng nó hoạt động như mong đợi và chứng minh cách thử nghiệm hoạt động; Tôi không theo dõi TDD thực sự vì một số mã đã được viết nhưng tôi hy vọng sẽ tuân theo một số khái niệm TDD cho mã mới mà tôi phải tạo.
Bây giờ, chắc chắn tôi chắc chắn tôi sẽ được hỏi tại sao tôi phải mất hơn một hoặc hai ngày để viết mã, vì các phần của những gì tôi sẽ tương tác đã tồn tại trong hệ thống (mặc dù không có bất kỳ thử nghiệm nào và rất chặt chẽ được ghép nối) và khi tôi kiểm tra mã trong tôi sẽ được hỏi dự án "Thử nghiệm" này là gì. Tôi có thể giải thích các vấn đề cơ bản của thử nghiệm, nhưng tôi không thể giải thích các lợi ích thực tế theo cách mà người khác sẽ hiểu (vì họ nghĩ rằng thử nghiệm yêu cầu bạn phải tự chạy ứng dụng, vì thường UI thực sự quan trọng trong việc xác định xem tính năng "có hoạt động không " hay không). Họ không hiểu ý tưởng về khớp nối lỏng lẻo (hiển nhiên rõ ràng bởi thực tế không có gì được ghép lỏng lẻo; thậm chí không có bất kỳ giao diện nào bên ngoài mã tôi đã viết), Vì vậy, cố gắng sử dụng nó như một lợi ích có thể sẽ kiếm cho tôi một "Huh?" Kiểu nhìn, và một lần nữa tôi không thể lỏng lẻo như tôi muốn mà không phải làm lại một số mô-đun hiện có và có thể giới thiệu một số loại container IoC, sẽ bị xem là lãng phí thời gian và không "lập trình".
Có ai có bất kỳ đề xuất nào về cách tôi có thể chỉ ra mã này và nói "Chúng ta nên bắt đầu tạo các bài kiểm tra đơn vị" mà không bị từ chối (ví dụ: "Kiểm tra viết buộc bạn phải viết mã tốt." ngoại trừ của tôi là xấu ) hoặc không làm cho nó có vẻ như lãng phí thời gian mà không thêm bất kỳ giá trị thực sự?