Ruby on rails 使用rspec验证存在性
这是我第一次在rails中进行测试,我觉得这应该是一个非常简单的验证 在组_spec.rb中Ruby on rails 使用rspec验证存在性,ruby-on-rails,rspec,Ruby On Rails,Rspec,这是我第一次在rails中进行测试,我觉得这应该是一个非常简单的验证 在组_spec.rb中 it { should validate_presence_of(:enc_key) } it { should validate_uniqueness_of(:enc_key).case_insensitive } 在我的模型中 validates :enc_key, :presence => true, uniqueness: {:case_sensitive => false} 当
it { should validate_presence_of(:enc_key) }
it { should validate_uniqueness_of(:enc_key).case_insensitive }
在我的模型中
validates :enc_key, :presence => true, uniqueness: {:case_sensitive => false}
当我运行rspec时,我会
2) Group should require enc_key to be set
Failure/Error: it { should validate_presence_of(:enc_key) }
Expected errors to include "can't be blank" when enc_key is set to nil, got errors: ["owner There is no owner associated with this group. (nil)", "name can't be blank (nil)", "name is
too short (minimum is 4 characters) (nil)", "stripped_name can't be blank (nil)"]
错误列表是从其他验证生成的,我尝试过编写自定义验证,但也没有成功 我猜您在这里使用的是shoulda matchers,我看不出您的测试有什么问题 我认为您应该在模型中使用
validates
方法,而不是validate
方法<代码>验证用于声明您在此处指定的验证规则类型<代码>验证用于声明自定义验证
因此,请在您的模型中尝试以下方法:
validates :enc_key, presence: true, uniqueness: {case_sensitive: false}
看
和shoulda matchers设计用于处理其他有效记录。它们改变了记录的各个方面,并测试验证是否报告了适当的错误。如果记录中已经有错误,这种方法通常不起作用 您尚未显示规范的其余部分,但我收集的
主题为零。您需要将subject
设置为记录的有效实例
有关这方面的相关讨论,请参阅。对不起,这是我的打字错误。我正在使用验证,但测试仍然失败。至于该不该找媒人,我想是的。实际上是其他人编写了测试用例。