Tôi sẽ bênh vực cho Fixture Replacement 2. Các thuộc tính mô hình mặc định (không quan tâm) của bạn được lưu trữ tất cả ở một nơi, db/example_data.rb và cung cấp các đối tượng hợp lệ nhanh. Bất kỳ thuộc tính nào bạn chỉ định khi tạo ghi đè thuộc tính mặc định - nghĩa là dữ liệu mà bạn quan tâm là trong thử nghiệm và không có gì khác.
Dữ liệu ví dụ của bạn cũng có thể tham khảo các mô hình mặc định khác, được đại diện bởi procs với đánh giá chậm, vì vậy bạn có thể ghi đè liên kết dễ dàng khi muốn.
Phiên bản 2 cung cấp định dạng rõ ràng hơn nhiều, trong khi vẫn cung cấp các phương pháp ma thuật new_*, create_*, and default_*
cho mọi mô hình.
Tôi sẽ tránh bất kỳ loại chương trình "kịch bản" nào khuyến khích xây dựng ngày càng nhiều dữ liệu thử nghiệm khó đọc sau này. Bạn có thể tạo các đối tượng có tên (tùy chỉnh) với FR2, nhưng tôi chưa bao giờ tìm thấy một nhu cầu cho nó.
P.S. Hãy chắc chắn rằng bạn xem xét đơn vị của bạn chiến lược thử nghiệm là tốt - Đồ đạc và tất cả các tương tự của họ là các đối tượng thực sự nhấn DB, làm cho các bài kiểm tra chức năng hoặc tích hợp. Tôi hiện đang sử dụng chế độ nhạo báng của RSpec cùng với stub_model()
và đá quý unit_record mới nhất để không cho phép truy cập DB.
Nguồn
2008-10-18 00:05:28
đã bỏ phiếu cho "cô gái" – DFectuoso