ruby-on-rails – 从FactoryGirl删除属性

我想测试一下,如果缺少一个属性,我的模型将不会创建实例,所以我试过这个:

 test "should not save without a url" do
    attrs = FactoryGirl.attributes_for(:page).delete(:url)
    page = Page.new(attrs)
    assert !page.save
 end

FactoryGirl.define do
  factory :page do
    url 'http://testpage.com'
    background 'rgb(255,255,255)'  
  end
end

但是,我得到NoM​​ethodError:未定义的方法stringify_keys’为“http://testpage.com”:字符串

我在这里错过了什么?或者这样做的正确方法是什么?

最佳答案 实际上,您要查看方法
except.
delete方法将返回删除键的值,而不是修改后的哈希值.

所以,你想要这个:

attrs = FactoryGirl.attributes_for(:page).except(:url)
点赞