Tôi gặp sự cố khi tổ chức bài kiểm tra lớp học dựa trên unittest
cho gia đình kiểm tra. Ví dụ giả sử tôi triển khai giao diện "từ điển" và có 5 cách triển khai khác nhau muốn thử nghiệm.kiểm tra không sử dụng lại cho gia đình của các lớp học
Tôi viết một lớp thử nghiệm để kiểm tra giao diện từ điển. Nhưng làm thế nào tôi có thể tái sử dụng nó một cách độc đáo để kiểm tra tất cả các lớp của tôi? Cho đến nay tôi làm xấu xí:
DictType = hashtable.HashDict
Ở đầu tệp và sau đó sử dụng DictType
trong lớp thử nghiệm. Để kiểm tra một lớp khác, tôi tự thay đổi DictType
thành một thứ khác.
Làm cách nào để thực hiện điều này bằng cách khác? Không thể chuyển đối số cho các lớp unittest
để có cách nào đẹp hơn?
oh, rất đẹp, 10x alex – zaharpopov
Tôi đang cố gắng sử dụng mẫu này nhưng nhận được lỗi (ví dụ như 'TypeError: 'NoneType' đối tượng là không thể gọi') vì khuôn khổ' unittest' chạy các xét nghiệm trong bối cảnh 'MappingTestBase' cũng như các lớp học có nguồn gốc. Có cách nào để ngăn chặn điều này xảy ra ? – user200783
@PaulBaker, chắc chắn, bạn có thể xây dựng bộ thử nghiệm mà bạn muốn chạy khá rõ ràng, ví dụ: bằng cách sử dụng lớp 'TestLoader', hãy xem https://docs.python.org/2/library/unittest.html#unittest.TestLoader , ví dụ bằng cách phân lớp nó và ghi đè 'getTestCaseNames' để trả về' [] 'cho các lớp có phương thức thử mà bạn không muốn chạy. Hoặc, bạn có thể trang trí tất cả các phương thức thử để chỉ trả về nếu' self.dicttype là None'. phương pháp tiếp cận làm việc tốt. –