我的用户模型中有以下验证:
validates :name, :format => {
:with => /^[a-zA-Z]+$/,
:message => 'Only letters allowed.'
}
这是我的测试:
test 'name must consist of letters only' do
user = User.new(:name => 'test123')
assert user.errors[:name].any?
end
测试总是失败。我做错了什么? xD
最佳答案
您的断言与应有的相反。反转断言的条件。
试试这个
test 'name must consist of letters only' do
user = User.new(:name => 'test123')
assert !user.valid?
end
此外,尝试使用 validates_format_of
而不是 validate
validates_format_of :name, :with => /^[a-zA-Z]+$/, :message => 'Only letters allowed.'
关于ruby-on-rails - 无法使用测试单元测试用户名验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323444/