2015-01-19 16 views
6

Có phải chia sẻ cá thể của Fixture trên nhiều phương pháp thử nghiệm là một thực tiễn tốt không?Chia sẻ AutoFixture qua các thử nghiệm

Hoặc tốt hơn là tạo một phiên bản mới Fixture cho mọi phương pháp thử nghiệm?

Phương pháp hay nhất là gì? Nó sẽ tốt nếu bạn có thể cung cấp cho tôi một nguồn mà trên đó một là chống mẫu.

Trả lời

7

AutoFixture lấy tên từ mô hình Fixture:.

"bộ ghép đo là tất cả những gì chúng ta cần phải có tại chỗ để chạy thử nghiệm và mong đợi một kết quả đặc biệt [...] Thiết lập các vật cố thử nghiệm là giai đoạn đầu tiên của Four-Phase Test. "

Trong khi Shared Fixture là một khả năng mang tính khái niệm, nó có rất nhiều nhược điểm, vì nó làm cho việc kiểm tra độc lập với nhau trở nên khó khăn hơn.

AutoFixture được thiết kế rõ ràng để cung cấp thư viện có thể tái sử dụng để tạo Đồ đạc, thay vì phải tự mã Fixture Objects cho mọi loại ngữ cảnh thử nghiệm mới mà bạn cần tạo.

Có những người tạo một đối tượng đơn (Tự động trộn) Fixture và chia sẻ nó qua nhiều phương pháp thử nghiệm, nhưng tôi chưa bao giờ hiểu tại sao họ làm điều đó; nó gần như đánh bại mục đích của AutoFixture.

Tuy nhiên, nếu bạn thấy một thiết lập hữu ích như vậy, tôi là ai để bảo bạn ngừng làm việc đó? Dù nổi thuyền của bạn ... Tuy nhiên, AutoFixture được thiết kế với trường hợp sử dụng rõ ràng của một ví dụ Fixture mỗi phương pháp thử nghiệm trong tâm trí, và tôi đã không thấy bất kỳ lợi thế để làm điều đó theo cách khác.

6

Việc thực hành tốt nhất là để tận dụng lợi thế của AutoFixture.Xunit hoặc AutoFixture.NUnit2 và tránh tạo ra một trường hợp Fixture, bên trong hoặc bên ngoài của các phương pháp thử nghiệm hoặc các chức năng.

Nếu bạn không thể sử dụng bất kỳ thư viện Keo ở trên, nó được coi là một thực hành tốt khi sử dụng một mới thể hiện của lớp Fixture trong mỗi bài kiểm tra.

Sử dụng phiên bản mới của lớp Fixture cho phép bạn kiểm soát cách hoạt động của AutoFixture trên từng thử nghiệm cụ thể, vì bạn có thể áp dụng Tùy chỉnh cho nó và chúng sẽ không ảnh hưởng đến tất cả các thử nghiệm khác.

Các vấn đề liên quan