Ruby on rails 未通过新对象有效性的Rspec测试
我完成了Michael Hartl的Ruby on Rails教程,所有测试都通过了。现在,我将返回并对站点进行更改以满足我自己的需要,这并不像本节中的测试没有通过那样简单。我已经创建了一个新的慈善对象,它强烈地基于哈特尔的Micropost对象。唯一的区别是对象没有内容,而是有:name、:description和:summary 这是失败测试的代码,特别是位于/charity_spec.rb中的{should'u valid}: 测试一开始实际上通过了,但一旦我将验证添加到charity.rb文件中,它们就会返回Ruby on rails 未通过新对象有效性的Rspec测试,ruby-on-rails,rspec,factory-bot,railstutorial.org,Ruby On Rails,Rspec,Factory Bot,Railstutorial.org,我完成了Michael Hartl的Ruby on Rails教程,所有测试都通过了。现在,我将返回并对站点进行更改以满足我自己的需要,这并不像本节中的测试没有通过那样简单。我已经创建了一个新的慈善对象,它强烈地基于哈特尔的Micropost对象。唯一的区别是对象没有内容,而是有:name、:description和:summary 这是失败测试的代码,特别是位于/charity_spec.rb中的{should'u valid}: 测试一开始实际上通过了,但一旦我将验证添加到charity.r
Failures:
1) Charity
Failure/Error: it { should be_valid }
expected valid? to return, true, got false
...
这是charity.rb:
当我从charity.rb中删除:name、:summary和:description验证时,测试通过。下面是my user.rb的开头:
利用你的工厂进行适当的慈善活动:
before { @charity = user.charities.build(FactoryGirl.attributes_for(:charity)) }
它失败,因为您验证了未设置为“名称”的属性的存在性
如果你需要更多关于FactoryGirl的背景知识,他们的网站非常好
class Charity < ActiveRecord::Base
attr_accessible :name, :description, :summary
belongs_to :user
validates :name, presence: true, length: { maximum: 40 }
validates :summary, presence: true
validates :description, presence: true
validates :user_id, presence: true
default_scope order: 'charities.created_at DESC'
end
factory :charity do
name "Lorem ipsum"
summary "Lorem ipsum"
description "Lorem ipsum"
user
end
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation
has_secure_password
has_many :charities
has_many :microposts, dependent: :destroy
before { @charity = user.charities.build(FactoryGirl.attributes_for(:charity)) }