从FactoryGirl删除属性

时间:2013-11-29 17:09:01

标签: ruby-on-rails factory-bot

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

 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

但是,我得到了NoMethodError: undefined method stringify_keys' for "http://testpage.com":String

我在这里缺少什么?或者这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

实际上,您想看一下方法exceptdelete方法将返回删除键的值,而不是修改后的哈希值。

所以,你想要这个:

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