Trong khi có nhiều cách để giữ cho các bài kiểm tra đơn vị không được thực thi, giá trị của việc kiểm tra trong các bài kiểm tra đơn vị không thành công là gì?
Tôi sẽ sử dụng một ví dụ đơn giản: Độ nhạy trường hợp. Mã hiện tại là trường hợp nhạy cảm. Một đầu vào hợp lệ vào phương thức là "Cat" và nó sẽ trả về một enum của Animal.Cat. Tuy nhiên, chức năng mong muốn của phương pháp không nên phân biệt chữ hoa chữ thường. Vì vậy, nếu phương thức được mô tả đã được thông qua "con mèo", nó có thể trả về một cái gì đó như Animal.Null thay vì Animal.Cat và bài kiểm tra đơn vị sẽ thất bại. Mặc dù một thay đổi mã đơn giản sẽ làm cho công việc này hoạt động, một vấn đề phức tạp hơn có thể mất nhiều tuần để khắc phục, nhưng xác định lỗi bằng một bài kiểm tra đơn vị có thể là một nhiệm vụ ít phức tạp hơn.
Ứng dụng hiện đang được phân tích có 4 năm mã "hoạt động". Tuy nhiên, các cuộc thảo luận gần đây liên quan đến các bài kiểm tra đơn vị đã tìm thấy lỗ hổng trong mã. Một số chỉ cần tài liệu triển khai rõ ràng (ví dụ trường hợp có nhạy cảm hay không) hoặc mã không thực thi lỗi dựa trên cách nó được gọi hiện tại. Nhưng các bài kiểm tra đơn vị có thể được tạo ra khi thực hiện các kịch bản cụ thể sẽ khiến lỗi được nhìn thấy và là các đầu vào hợp lệ.
Giá trị của việc kiểm tra trong các bài kiểm tra đơn vị thực hiện lỗi cho đến khi ai đó có thể đi xung quanh để sửa mã?
Thử nghiệm đơn vị này có nên được gắn cờ với bỏ qua, ưu tiên, danh mục, v.v. để xác định xem một bản dựng có thành công hay không dựa trên các thử nghiệm được thực hiện? Cuối cùng, bài kiểm tra đơn vị nên được tạo để thực thi mã khi có người sửa nó.
Một mặt nó cho thấy rằng các lỗi được xác định chưa được sửa chữa. Mặt khác, có thể có hàng trăm bài kiểm tra đơn vị thất bại xuất hiện trong nhật ký và tìm kiếm những bài kiểm tra thất bại so với thất bại do đăng ký mã sẽ khó tìm thấy.