Рубиновый "тест граблей: сбой единиц" - PullRequest
1 голос
/ 06 декабря 2011

Я запускаю юнит-тест на пользовательской модели в ruby. Я все еще изучаю рубин. Поэтому, когда я бегу

rake test:units

Я понял

Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader
Started
F
Finished in 0.116562 seconds.

  1) Failure:
test_user_attributes_must_not_be_empty(UserTest) [test/unit/user_test.rb:10]:
<false> is not true.

1 tests, 5 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby1.8 -I"lib:test" "/usr/lib/ru...]

Tasks: TOP => test:units
(See full trace by running task with --trace)

когда я иду в файл test/unit/user_test.rb:10 Я вижу эту строку,

require 'test_helper'

    class UserTest < ActiveSupport::TestCase
       test "user attributes must not be empty" do
            user = User.new
        assert user.invalid?
        assert user.errors[:username].any?
        assert user.errors[:name].any?
        assert user.errors[:surname].any?
        >>>assert user.errors[:date_birth].any?<<< Here!
        assert user.errors[:date_reg].any?
        assert user.errors[:email].any?
   end
end

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

Edit: Мой пользовательский класс:

class User < ActiveRecord::Base

validates :username, :name, :surname, :email, :presence => true
validates :username, :uniqueness => true

end

1 Ответ

2 голосов
/ 06 декабря 2011

Что говорят ваши тесты, так это то, что если во всех этих атрибутах есть какая-либо ошибка, тест проходит успешно.

У вас нет проверки на date_birth, поэтому ошибка не возникает, поэтомутест не проходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...