2010-01-25 34 views
40

Tôi đang làm việc với factory_girl, nhưng nhìn vào viên ngọc thợ máy. Bạn có thể cho tôi biết xin vui lòng - những ưu và nhược điểm của việc chuyển sang thợ máy là gì? Bạn đã so sánh những libs đó chưa?Machinist vs FactoryGirl - ưu và khuyết điểm

+1

không phải là câu trả lời trực tiếp cho câu hỏi của bạn, nhưng bạn cũng có thể xem miniskirt: http://www.stephencelis.com/2010/01/11/miniskirt.html ... với tư cách là người dùng factory_girl, tôi thích cách này đơn giản lib tiếp cận các nhà máy với cú pháp tốt hơn và trọng lượng ít hơn. – foz

+40

machinist? nữ công nhân? chiếc váy ngắn? Tôi đã vấp phải loại diễn đàn nào? –

+7

@DonalBoyle bạn có thể ấn tượng hơn nếu bạn biết rằng cũng có một [factory_boy] (https://github.com/dnerdy/factory_boy) :) – galymzhan

Trả lời

25

Machinist thực sự được lấy cảm hứng từ factory_girl, nhưng đa dạng vì tác giả của thợ máy muốn có một cú pháp khác. Kể từ đó, factory_girl đã thêm các lớp cú pháp khác nhau để mô phỏng các thư viện nhà máy khác (bao gồm cú pháp "kế hoạch chi tiết" của máy móc). Nói cách khác, cả hai đều rất giống nhau, chỉ với một cú pháp mặc định khác. Cá nhân, tôi sử dụng factory_girl.

0

Tôi đã không sử dụng thợ máy trước đây, nhưng tôi có thể nói factory_girl là khá dễ sử dụng, mở rộng và rip ra bất kỳ rails-centricness nó đã được sử dụng trong bất kỳ loại dự án.

17

Thực ra, Machinist có lợi thế lớn so với Factory Girl: nó không nhấn DB cho các đối tượng liên quan. Nhìn đây:

Machinist vs Factory Girl: Machinist win!

Vẫn không chắc chắn về Machinist xử lý này như thế nào, nhưng dù sao đi nữa nó có thể là một sự thúc đẩy hiệu suất rất lớn cho cơ sở thử nghiệm của bạn.

+7

Chỉ cần chú ý trong [this screencast] (http : //railscasts.com/episodes/158-factories-not-fixtures-revised) mà bạn có thể sử dụng 'FactoryGirl.build' nếu bạn không muốn nhấn cơ sở dữ liệu. Có lẽ là một tính năng mới. – jrhorn424

+1

FactoryGirl.build thực sự mô tả cơ sở dữ liệu cho các đối tượng liên quan. FactoryGirl.build_stubbed tạo các đối tượng mà không cần nhấn cơ sở dữ liệu. – Kristiina

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