【发布时间】:2018-11-22 18:09:07
【问题描述】:
我有带有验证的用户设计模型
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
validates :first_name, presence: true, length: { maximum: 100 }
validates :last_name, presence: true, length: { maximum: 100 }
validates :email, presence: true, uniqueness: true, format: { with: /\A.+@.+\..+\z/ }
end
和用于测试电子邮件验证的 RSpec 文件
describe 'email field' do
subject { User.new(first_name: 'jan', last_name: 'kowalski', email: 'jan@foo.com').valid? }
context 'when email has wrong format' do
let(:email) { 'jan@foo' }
it 'complains for invalid format' do
is_expected.to eq false
end
let(:email) { 'jan' }
it 'complains for invalid format' do
is_expected.to eq false
end
end
context 'when email has correct format' do
it 'accepts valid format' do
is_expected.to eq true
end
end
end
我想测试用户模型中正确电子邮件地址格式的验证。除了最后一次出现错误expected: true got: false 之外,每项测试都顺利通过。我错过了规范文件中的某些内容吗?或者我在用户模型中有错误的声明?欢迎任何帮助。
【问题讨论】:
标签: ruby-on-rails rspec