рельсы не видят мои тесты длины? - PullRequest
1 голос
/ 26 февраля 2012

Я использую rspec, rails 3.2.1 и запускаю тесты на моей модели Devise "User".

По какой-то причине все мои тесты, связанные с длиной, не работают (всетесты не пройдены), но я добавил необходимые проверки ... также, мои "требуемые" проверки работают нормально.

в качестве дополнительного вопроса, как мне заказать мои сообщения проверки?сообщения об ошибках имени пользователя отображаются внизу, хотя это первое поле ввода

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :username, :bio, :password, :password_confirmation, :remember_me

  username_regex = /\A[\w_]+\z/i

  validates :username, :presence   => true,
                       :uniqueness => true,
                       :format     => { :with => username_regex,
                                        :message => "Username can only contain letters, numbers and underscores." },
                       :length     => { :minimum => 3,
                                        :maximum => 15 }

  validates :bio,      :length     => { :maximum => 255 }

end

. Вот код для моих тестов, которые не проходят

require 'spec_helper'

describe User do

  before(:each) do
    @attr = { 
      :username => "TestUser",
      :email    => "fake@hell.com",
      :password => "123456",
      :bio      => "This is my bio"
    }
  end

  it "should create a new instance given a valid attribute" do
    User.create!(@attr)
  end

  it "should require a username" do
    no_username_user = User.new(@attr.merge(:username => ""))
    no_username_user.should_not be_valid
  end

  it "should require an email" do
    no_email_user = User.new(@attr.merge(:email => ""))
    no_email_user.should_not be_valid
  end

  it "should reject spaces in username" do
    space_username = User.new(@attr.merge(:username => "Test User"))
    space_username.should_not be_valid
  end

  it "should reject usernames that are too long" do
    long_username = User.new(@attr.merge(:username => "#{'a'*16}"))
    long_username.should_not be_valid
  end

  it "should reject short bios" do
    long_bio = User.new(@attr.merge(:bio => "12"))
    long_bio.should_not be_valid
  end

  it "should reject long bios" do
    long_bio = User.new(@attr.merge(:bio => "#{'b'*256}"))
    long_bio.should_not be_valid
  end

  it "should allow no bio" do 
    no_bio = User.new(@attr.merge(:bio => ""))
    no_bio.should be_valid
  end
end

1 Ответ

0 голосов
/ 26 февраля 2012

Возможно, ваш сервер кэшируется, попробуйте перезапустить его.

...