Jul*_*ira 5 rspec-rails rspec3
我的模型中的某些属性具有存在验证,我想在我的规范中添加测试以检查当属性为空时是否生成错误。
我正在使用此代码:
it 'should have a name' do
expect(@patient.errors[:name].size).to eq(1)
end
Run Code Online (Sandbox Code Playgroud)
但这是 rspec 命令的结果:
失败:
1) 患者应有姓名
失败/错误:expect(@patient.errors[:name].size).to eq(1)
预期:1
得到:0
(比较使用 ==)
# ./spec/models/patient_spec.rb:11:in `block (2 levels) in '
在 0.03002 秒内完成(文件需要 40.54 秒加载)
1个例子,1个失败
失败的例子:
rspec ./spec/models/patient_spec.rb:10 # 患者应该有一个名字
我发现了我的错误。我需要致电@ Patient.valid 吗?在检查错误之前。
it 'has a name' do
@patient.valid?
expect(@patient.errors[:name].size).to eq(1)
end
Run Code Online (Sandbox Code Playgroud)
使用shoulda,您可以在一行简单的代码中完成此操作:
Describe Patient do
it { should validate_presence_of(:name) }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5825 次 |
| 最近记录: |