Đây là vấn đề thiết kế thử nghiệm đơn vị C# của tôi:C# Thiết kế thử nghiệm đơn vị Vấn đề: Làm thế nào để giảm dư thừa trong văn bản kiểm tra đơn vị?
Tôi có một thử nghiệm mà tôi muốn chạy trên một số mã sửa đổi tệp. Thử nghiệm của tôi sẽ chạy mã sửa đổi tệp, sau đó kiểm tra kết quả. Khá thẳng về phía trước cho đến nay ...
Vấn đề là, tôi có khoảng 10 tệp (sắp có nhiều hơn) mà tôi muốn chạy cùng một bài kiểm tra đơn vị. Tôi không muốn viết một bài kiểm tra đơn vị mới cho mỗi tệp, khi bản thân bài kiểm tra thực sự giống nhau.
Tôi có thể viết một bài kiểm tra duy nhất truy vấn các tệp trong thư mục và sau đó chạy logic thử nghiệm trên mỗi tệp, nhưng sử dụng phương pháp này sẽ chỉ báo cáo một kết quả vượt qua/lỗi cho toàn bộ tệp.
Id muốn tạo một số loại hệ thống động, trong đó mọi tệp mà tôi đặt trong một thư mục cụ thể sẽ chạy mặc dù thử nghiệm đơn vị giống nhau này. Vì vậy, nếu 25 tệp nằm trong thư mục, thử nghiệm sẽ chạy 25 lần và kiểm tra đơn vị báo cáo rằng 25 thử nghiệm đã được chạy và bao gồm việc vượt qua/thất bại riêng biệt cho mỗi tệp.
Bất kỳ ý tưởng nào hoặc nếu điều này có thể được thực hiện trong bài kiểm tra đơn vị C#? Hoặc với một bài kiểm tra nunit?
Cảm ơn! Và tôi hy vọng đây không phải là một câu hỏi trùng lặp. Tôi nhìn quanh, nhưng tôi không thể tìm thấy gì cả.
Một số người cho rằng thử nghiệm liên quan đến IO (thao tác hệ thống tệp trong trường hợp này) không phải là kiểm tra đơn vị. Một cách tiếp cận khác là đại diện cho các hoạt động IO như các phụ thuộc có thể tiêm được. Tuy nhiên, hầu hết các loại System.IO (và chắc chắn là các số liệu thống kê) không cho vay chính nó. Một cách tiếp cận tôi đã sử dụng là tạo ra các assembly proxy của các kiểu chuyển tiếp phương thức tầm thường và các giao diện tương ứng. Điều này cho phép bạn rời khỏi lớp proxy mỏng chưa được kiểm tra này và lớp logic của bạn đã được kiểm tra đầy đủ. Microsoft Moles thực hiện điều này một cách hiệu quả nhưng đó vẫn là một WIP. –