Tôi có xu hướng bên cạnh các đồng nghiệp của bạn, nhưng chỉ đến một điểm.
Vấn đề với các bài kiểm tra đơn vị là chúng được viết thường xuyên và không suy nghĩ về các trường hợp tầm thường trong đó việc điều tra mã hóa cho thấy rằng nó sẽ hoạt động bất kể là gì. Ví dụ:
def add(x, y)
x + y
end
Cùng với một tá các thử nghiệm để đảm bảo rằng bổ sung sẽ thực sự hoạt động cho các trường hợp sử dụng được lựa chọn tùy ý. Tât nhiên...
Tiền đề chung đằng sau kiểm thử đơn vị là: nếu mã của bạn không có lỗi, đó là do bạn chưa kiểm tra đủ. Bây giờ, khi viết bài kiểm tra đơn vị thích hợp. Đáp án:
- Khi bạn đang thử nghiệm
- Khi bạn gỡ lỗi
- Khi bạn đang phát triển những thứ thực sự khó khăn
Chúng ta hãy đi qua từng cái, giả sử bạn đang phát triển một loại ứng dụng web nào đó.
Bạn viết một số mã cho chức năng mới và bây giờ nó sẽ hoạt động tốt. Sau đó, bạn tiếp cận với trình duyệt của mình và xác minh rằng nó hoạt động bằng cách kiểm tra chuyên sâu hơn, phải không? Bzzzt! ... Trả lời sai. Bạn viết một bài kiểm tra đơn vị. Nếu bạn không làm như vậy bây giờ, có lẽ bạn sẽ không bao giờ. Và đây là một trong những nơi mà các bài kiểm tra đơn vị hoạt động rất tốt: để kiểm tra chức năng cấp cao.
Sau đó, bạn phát hiện ra một lỗi (ai không bao giờ bỏ lỡ bất kỳ?). Điều này đưa chúng ta đến điểm hai. Bạn quay lại mã và bắt đầu làm theo các bước. Khi bạn làm như vậy, hãy viết các bài kiểm tra đơn vị tại các điểm ngắt quan trọng trong đó việc có dữ liệu phù hợp và chính xác là rất quan trọng.
Điểm cuối cùng là cách khác. Bạn đang thiết kế một số chức năng lông bao gồm vô số lập trình meta. Nó nhanh chóng sinh ra một cây quyết định với hàng ngàn kịch bản tiềm năng và bạn cần chắc chắn rằng mỗi một trong số chúng đều hoạt động. Khi viết những điều như vậy, một sự thay đổi tìm kiếm đơn giản ở đây hoặc ở đó có thể có những hậu quả không thể tưởng tượng hơn nữa trong chuỗi thức ăn. Giả sử, bạn đang thiết kế triển khai MPTT bằng các trình kích hoạt SQL - để nó có thể hoạt động với các câu lệnh nhiều hàng.
Trong loại môi trường chông gai này, thông thường bạn sẽ muốn tự động hóa cao các bài kiểm tra của mình. Vì vậy, bạn viết các kịch bản để tự động hóa việc tạo dữ liệu thử nghiệm và chạy một tải trọng các thử nghiệm đơn vị trên dữ liệu thử nghiệm này. Một điều quan trọng để không bị mất dấu khi bạn làm điều này, đó là bạn cũng cần phải viết bài kiểm tra đơn vị cho trình tạo thử nghiệm đơn vị của bạn.
Tóm lại: kiểm tra đơn vị, chắc chắn là có. Nhưng hãy dành cho mình những chức năng cơ bản - cho đến khi bạn thực sự cần chúng để gỡ lỗi, hoặc đảm bảo một số chức năng lông hoạt động đúng (bao gồm, trong trường hợp sau, chính các bài kiểm tra).