Я использую rspec, rails, guard и волшебство для своей аутентификации и тестирования.
У меня есть тест, который проверяет длину электронной почты.Я хочу отклонить слишком длинные электронные письма.Вот тест, который я написал для spec / models / user_spec.rb
require 'spec_helper'
describe User do
before(:each) do
@attr = { :email => "testuser@example.com", :password => "password", :password_confirmation => "password" }
end
it "should reject emails that are too long" do
long_email = "a" * 101 + "gmail.com"
long_email = User.new (@attr.merge(:email => long_email))
long_email.should_not be_valid
end
Вот проверки моделей, которые у меня есть:
class User < ActiveRecord::Base
authenticates_with_sorcery!
attr_accessible :email, :password, :password_confirmation
validates_presence_of :password, :on => :create
validates :password, :confirmation => true,
:length => { :within => 6..100 }
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => {:case_sensitive => false},
:length => { :within => 5..100 }
end
Я новичок в этом деле, поэтому любая помощь будет принята с благодарностью.Тест зеленый сейчас, он становится красным, если я поменяю строку на long_email.should be_valid.Заранее спасибо!