我正在尝试一个挑战,我需要做一些验证。我应该通过以下测试:我的验证有什么问题?
it 'should not allow political words' do
body = "Petralha Tucanos Dilma"
opinion = Opinion.new(body: body)
expect(opinion).to_not be_valid
expect(opinion.errors[:body]).to include "Contains political words"
end
it 'is invalid when has no body' do
body = ''
opinion = Opinion.new(body: body)
expect(opinion).to_not be_valid
expect(opinion.errors[:body]).to include 'can\'t be blank'
end
it 'is invalid when has more than 150 caracters' do
body = 'a' * 151
opinion = Opinion.new(body: body)
expect(opinion).to_not be_valid
expect(opinion.errors[:body]).to include 'is too long'
end
要做到这一点我想在我的模型如下:
class Opinion < ActiveRecord::Base
validates :body, presence: true, length: { maximum: 150 }, exclusion: { in: %w(Petralha Tucanos Dilma) }
end
我还在一个on Rails的小白,所以任何有线索? 这些都是错误的,我得到:
1)意见不应该让政治话语 故障/错误:期待(意见).to_not be_valid 预期#为无效 #./spec/models/opinion_spec.rb :16:in'block(2 levels)in'
2)当超过150个字符时,意见无效 失败/错误:期望(opinion.errors [:body])包含'太长' 预计[“太长(最多150个字符)”]包含“太长” #./spec/models/opinion_spec.rb:33:in'block(2 levels)in'
在0.12861秒成品(文件了0.64205秒加载) 11例,2次失败
失败的例子:
rspec的./spec/models/opinion_spec.rb:12#舆论不应该让政治words rspec ./spec/models/opinion_spec.rb:28#当超过150个字符时,意见无效
我编辑了您的问题以格式化代码,以便它能够正确显示并使用语法高亮显示。将来使用代码按钮“{}”或在每行新代码的开头添加4个空格(超出任何缩进范围)。 – Beartech