【发布时间】:2013-04-04 14:38:55
【问题描述】:
brief.rb
# encoding: utf-8
class Brief < ActiveRecord::Base
belongs_to :project
validate :can_only_be_edited_if_project_is_not_started
validates_presence_of :project, :inverse_of => :brief
validates_numericality_of :duration, :only_integer => true, :less_than_or_equal_to => 15, :greater_than_or_equal_to => 5
validates_length_of :brand_info, :maximum => 4000
def can_only_be_edited_if_project_is_not_started
errors.add(:base, 'Proje can't edit if duration is end!') if
!project.nil? && !project.brief_can_be_edited?
end
end
如何使用 shoulda gem 测试持续时间应该大于或等于 5 且小于或等于 15?
我试过下面的代码
brief_spec.rb
it { should ensure_inclusion_of(:duration).in_range(5..15)
但我收到了这个错误
1) Brief non-specific tests
Failure/Error: it { should ensure_inclusion_of(:duration).in_range(5..15) }
Did not expect errors to include "It's not suitable word" when duration is set to 4, got error:
# ./spec/models/brief_spec.rb:23:in `block (3 levels) in <top (required)>'
【问题讨论】:
-
你能澄清一下'没用' - 你是遇到异常还是失败?请发布您看到的结果。
-
感谢您的建议。我编辑了问题。
-
请提供正在测试的模型的代码。该错误似乎表明某些配置不正确。
-
我添加了整个brief.rb模型
标签: ruby-on-rails rspec shoulda