2013-03-05 9 views
7

Tôi đang viết một số thử nghiệm gọi là FG tạo với một đặc điểm mà sau khi tạo, tạo một đối tượng liên quan. Có cách nào để gửi thông số cho sản phẩm được liên kết đó khi tôi tạo FG hay tôi cần phải đặt chúng sau đó?Làm cách nào để gửi thông số đến đặc điểm FactoryGirl?

+0

Liệu [này SO bài] (http://stackoverflow.com/questions/16297357/factorygirl-override-attribute-of-associated -object) trả lời câu hỏi của bạn? Bạn sẽ làm điều tương tự, ngoại trừ thêm khối 'after_create' vào đặc điểm. – adarsh

Trả lời

7

Thêm vào đó tham số trong bỏ qua:

FactoryGirl.define do 
    trait :my_trait do 
    ignore do 
     associated_attributes nil 
    end 

    after_create do |object, evaluator| 
     # Use the ignored associated_attributes when creating the associated object 
     associated_object = AssociatedModel.new(evaluator.associated_attributes) 
    end 
    end 
end 

this page has a lot more tricks

+1

bỏ qua không được chấp nhận và sẽ bị xóa trong FactoryGirl 5.0, bạn có thể sử dụng tạm thời thay vì bỏ qua [source] (https://github.com/thoughtbot/factory_girl/issues/527) – Ekkstein