Nhà máy
Tạo/xây dựng một đối tượng và sau đó bạn chỉ sử dụng khi được gọi trong thử nghiệm.
Bạn xác định "đường dẫn hạnh phúc" của đối tượng, bao gồm các liên kết, trong một tệp (như được đề cập đến ryan) và sau đó chỉ duy trì một tệp khi các liên kết lược đồ/mô hình của bạn thay đổi.
Lịch thi đấu
Mimics những gì các cơ sở dữ liệu sẽ giống như một hồ sơ duy nhất, nó được nạp vào cơ sở dữ liệu thử nghiệm và sau đó sử dụng.
Đồ đạc là trạng thái kết thúc của mô hình và sống trong cơ sở dữ liệu, do đó được tải một lần và có thể được sử dụng trong các thử nghiệm khi bạn thấy phù hợp.
Nhiều tệp và bạn đặt ra tệp cố định để mỗi tệp và liên kết được xử lý.
NewModel.create (...)
là tạo ra một lần và sử dụng một lần trong một thử nghiệm hoặc trong một before(:each)
khối
Nếu bạn có 100 của các khối, đó là viết và duy trì 100 đối tượng khác nhau, chứ chưa nói đến các hiệp hội như @user.profile.create(....)
100 lần.
Ưu điểm của nhà máy trên NewModel.create
Một tập tin để duy trì, chứ không phải là grepping và thay thế nhiều build
hoặc create
trong dòng code của bạn.
Note Phải nói rằng trong bộ kiểm tra của tôi, tôi muốn nó được nhanh càng tốt, vì vậy tôi đang thả FactoryGirl và sử dụng Lịch thi đấu và NewModel.create di chuyển về phía trước. Chỉ để xem nó có tăng tốc không. Tôi đang làm việc trên lý thuyết rằng FG đang làm chậm bộ phần mềm của tôi xuống, như là let()
và before(:each)
Điểm cuối: Tất cả các đối số này cũng áp dụng cho đồ đạc. Đồ đạc nhanh hơn tổng thể. Có lý do nào khác không? – DGM
@DGM Mặc dù tôi sử dụng và tôi thích đồ đạc, đôi khi tôi thấy chúng khó duy trì. –