【发布时间】:2017-05-23 16:58:39
【问题描述】:
这是带有验证的消费者类
class Consumer < ActiveRecord::Base
validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create, message: 'invalid email format'}, length: { maximum: 256 }
这是我用来测试消费者的电子邮件格式是否有效但我收到错误的方法。除了这种方法,还有更好的方法来测试正则表达式吗?
it 'email with invalid format is invalid' do
consumer = Consumer.new(email: 'bugs', password: '12345')
consumer.valid?
consumer.errors.full_messages
expect(consumer.errors.get(:email)).to eq(['email is not valid'])
end
it 'has no errors for valid email format' do
consumer = Consumer.new(email: 'bugs@disney.com', password: '12345')
consumer.valid?
consumer.errors.full_messages
expect(consumer.errors.get(:email)).to be_nil
end
【问题讨论】:
标签: ruby-on-rails validation rspec