Chúng tôi đã xây dựng một số lượng đáng kể các bài kiểm tra đơn vị cho chương trình chính của chúng tôi trong những năm qua. Vài ngàn. Vấn đề là chúng ta không có ý tưởng rõ ràng về những thử nghiệm mà chúng ta có vì có rất nhiều. Và đó là một vấn đề bởi vì chúng tôi không biết chúng tôi yếu ở đâu trong các bài kiểm tra (hoặc nơi chúng tôi có các bản sao).
Ứng dụng của chúng tôi là một công cụ báo cáo. Vì vậy, bạn có thể có một mẫu được sử dụng để kiểm tra phân tích cú pháp (chúng ta có đọc tất cả các thuộc tính của bảng không), hợp nhất trong dữ liệu (chúng ta có giữ các thuộc tính bảng chính xác trong hợp nhất không), định dạng trang cuối cùng (là bảng được đặt chính xác trên trang ) và / hoặc định dạng đầu ra (là tệp DOCX được tạo chính xác).
Thêm vào đây những gì chúng ta cần kiểm tra. Lấy phần đệm xung quanh một ô của bảng (chúng tôi sử dụng Word, Excel và PowerPoint cho thiết kế báo cáo). Chúng ta phải kiểm tra phần đệm qua ngắt trang, đối với một bảng bên trong một ô, các ô được hợp nhất theo chiều dọc, các ô được hợp nhất theo chiều ngang, một ô được hợp nhất theo chiều dọc và chiều ngang có chứa một bảng với các ô được hợp nhất theo chiều dọc và chiều ngang trong bảng bên trong, trong đó bảng đó phá vỡ trên một trang.
Vì vậy, loại kiểm tra đó đi vào? Bảng đệm, ngắt trang, các ô được lồng, các ô được hợp nhất theo chiều dọc, các ô được hợp nhất theo chiều ngang, hoặc cái gì khác?
Và làm thế nào để chúng tôi ghi lại các loại này, đặt tên cho các bài kiểm tra đơn vị, vv?
Cập nhật: Một số người đã đề xuất sử dụng các công cụ bảo hiểm để xác minh rằng chúng tôi có bảo hiểm đầy đủ. Thật không may, đó là việc sử dụng hạn chế trong trường hợp của chúng tôi vì các lỗi có xu hướng là do các kết hợp cụ thể nên mã đó đã được kiểm tra, nhưng không phải trong kết hợp đó.
Ví dụ: hôm qua chúng tôi đã có một khách hàng bắt đầu đánh dấu Word ở cuối vòng lặp forEach trong mẫu của họ (tài liệu Word) và kết thúc nó ở đầu vòng lặp forEach tiếp theo. Tất cả mã được sử dụng này có các bài kiểm tra đơn vị chống lại nó, nhưng chúng tôi đã không nghĩ đến việc kết hợp một mẫu mở rộng dấu trang bắt đầu 25 lần, sau đó kết thúc 10 lần (hai vòng lặp forEach có số lượng hàng khác nhau).