Some attributes in my model have presence validation and I wanted to add tests in my spec to check if an error is generated when the attribute is blank.
I'm using this code:
it 'should have a name' do
expect(@patient.errors[:name].size).to eq(1)
end
But here is the result of the rspec command:
Failures: 1) Patient should have a name Failure/Error: expect(@patient.errors[:name].size).to eq(1) expected: 1 got: 0 (compared using ==) # ./spec/models/patient_spec.rb:11:in `block (2 levels) in ' Finished in 0.03002 seconds (files took 40.54 seconds to load) 1 example, 1 failure Failed examples: rspec ./spec/models/patient_spec.rb:10 # Patient should have a name
With shoulda you can do this in one simple line:
Describe Patient do
# original 'should' validation
it { should validate_presence_of(:name) }
# alternative 'expected' validation
it { is_expected.to validate_presence_of(:name) }
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With