Rails - Test :: Unit - тестирование этого числа больше 0 - PullRequest
1 голос
/ 13 декабря 2010

Моя модель поста имеет атрибут последовательности, который я хочу убедиться, что численно больше 0:

class Post < ActiveRecord::Base

  validates :sequence, :presence => true,
                       :uniqueness => true,
                       :numericality => { :greater_than => 0 }

Отлично. Сейчас я пытаюсь выполнить следующий тестовый тест.

  test "post is not valid if sequence is negative" do
    post = Post.new( :title => "Unique Title",
                     :description => "Some text",
                     :sequence => -1)
    assert !post.save
    assert_equal I18n.translate('activerecord.errors.messages.greater_than'),
                  post.errors[:sequence].join('; ')
  end

Но с этим выводом ничего не получится:

1) Failure:
test_post_is_not_valid_if_sequence_is_negative(PostTest) [/test/unit/post_test.rb:46]:
<"translation missing: en.activerecord.errors.messages.numericality.greater_than"> expected but was
<"must be greater than 0">.

Очевидно, что rails не нравится следующая строка 'activerecord.errors.messages.greater_than'

Так, какой аргумент мне нужно передать метод I18n.translate , чтобы проверить, что последовательность больше 0?

PS: Я прочитал раздел под названием 5.1.2 Интерполяция сообщений об ошибках на этой странице и подумал, что мой код будет работать, но, очевидно, я ошибся.

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