0

看一下这个:

  it "should not be this tough" do
    was = obj.association_id
    expect(obj.association_id).to eq 1
    obj.association_id = 2 * was
    expect(obj.association_id).to eq 2
    expect(obj.association_id_changed?).to be_true
    expect(obj.association_id_was).to be_present
  end

最后的期望落空了。这是为什么?如果我在控制台中执行相同的步骤,它会按我的预期工作。

4

1 回答 1

0

attribute_was方法将查找属性最后一次持久化时的值。如果您没有持久化该属性,它会false在您运行.present?或期望它时返回be_present

因此,在您的情况下,我假设您只是在仅实例化但未保存的对象上编写期望,或者您已将对象保存为association_id.

于 2013-09-17T20:26:43.230 回答