ruby-on-rails – Factory Girl将参数传递给trait
发布时间:2020-12-16 23:03:10 所属栏目:百科 来源:网络整理
导读:我一直在为此而奋斗.我希望能够覆盖特征之上的属性.我一直在阅读 documentation和一些互联网示例,但我无法让它工作. 这就是我想要做的事情: test "..." do #overwrite start_time middle = create( :basic_instant_instance,start: 1.hours.ago)end Factory
我一直在为此而奋斗.我希望能够覆盖特征之上的属性.我一直在阅读
documentation和一些互联网示例,但我无法让它工作.
这就是我想要做的事情: test "..." do #overwrite start_time middle = create( :basic_instant_instance,start: 1.hours.ago) end FactoryGirl.define do factory :instant_instance do trait :active_now do #attributes... transient do start nil end #overwrite start_time start_time start.present? ? start : Time.now end factory :basic_instant_instance,traits: [:active_now] end 我一直在:
解决方法
您需要在此重新考虑一下您的策略 – 您有一个basic_instant_instance,它不会从instant_instance继承,因此对trait [:active_now]或start属性一无所知.
您还需要在构建Factory实例时通过将其放在大括号中来评估start_time.否则,它将在start初始化之前进行评估. 尝试以下内容: FactoryGirl.define do factory :instant_instance do trait :active_now do #attributes... transient do start nil end #overwrite start_time start_time { start.present? ? start : Time.now } end end end 然后像这样调用它: create( :instant_instance,start: 1.hours.ago,:active_now) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |