Nếu tôi đã có bài kiểm tra tích hợp cho chương trình của mình và tất cả đều vượt qua, thì tôi có cảm giác tốt rằng nó sẽ hoạt động. Sau đó, những lý do để viết / thêm bài kiểm tra đơn vị là gì? Vì dù sao tôi cũng đã phải viết các bài kiểm tra tích hợp, tôi chỉ muốn viết bài kiểm tra đơn vị cho các phần không nằm trong các bài kiểm tra tích hợp.
Những gì tôi biết lợi ích của kiểm tra đơn vị so với kiểm tra tích hợp là
- Nhỏ và do đó chạy nhanh (nhưng thêm đơn vị mới để kiểm tra thứ gì đó đã được kiểm tra bằng thử nghiệm tích hợp có nghĩa là tổng số bộ thử nghiệm của tôi sẽ lớn hơn và dài hơn để chạy)
- Xác định vị trí lỗi dễ dàng hơn vì nó chỉ kiểm tra một thứ (nhưng tôi có thể bắt đầu viết kiểm tra đơn vị để xác minh từng phần riêng lẻ khi kiểm tra tích hợp của tôi không thành công)
- Tìm lỗi có thể không bị bắt trong kiểm tra tích hợp. ví dụ: che giấu / bù đắp lỗi. (nhưng nếu tích hợp của tôi kiểm tra tất cả các lần vượt qua, điều đó có nghĩa là chương trình của tôi sẽ hoạt động ngay cả một số lỗi ẩn tồn tại. Vì vậy, tìm / sửa các lỗi này không thực sự ưu tiên cao trừ khi chúng bắt đầu phá vỡ các kiểm tra tích hợp trong tương lai hoặc gây ra vấn đề về hiệu năng)
Và chúng tôi luôn muốn viết ít mã hơn, nhưng viết các bài kiểm tra đơn vị cần nhiều mã hơn (chủ yếu là thiết lập các đối tượng giả). Sự khác biệt giữa một số bài kiểm tra đơn vị của tôi và kiểm tra tích hợp là trong các bài kiểm tra đơn vị, tôi sử dụng đối tượng giả và trong các bài kiểm tra tích hợp, tôi sử dụng đối tượng thực. Có nhiều sự trùng lặp và tôi không thích mã trùng lặp, ngay cả trong các thử nghiệm vì điều này thêm chi phí để thay đổi hành vi mã (công cụ tái cấu trúc không thể làm tất cả công việc mọi lúc).