我有两个实例,它们之间的唯一区别是一个值(完整)我希望使用这样的东西,但它不起作用:
let(:section){Section.new(:date => '2015-05-01', :task_id => 1, :trade_id => 1, :schedule_id => 1)}
let(:complete_section){Section.new(section.attributes, complete: true)}
当我这样做时,属性从section.attributes
设置,但忽略complete: true
。
我是否有另一种方法可以从基础中获取属性:部分所以我不需要每次都写入所有属性?
答案 0 :(得分:4)
确实
let(:complete_section){Section.new(section.attributes.merge(complete: true))}
做你想做的事?
答案 1 :(得分:1)
此问题的常见解决方案是FactoryGirl,您可以在其中定义模板并覆盖必要的值:
let(:section) { FactoryGirl.build(:section) }
let(:complete_section) { FactoryGirl.build(:section, complete: true}