Я пытаюсь проверить атрибуты модели, для форматирования с этим:Shoulda формат тестирование
# myapp/test/unit/comment_test.rb
require 'test_helper'
class CommentTest < ActiveSupport::TestCase
should_belong_to :article
should_validate_presence_of :name
should_validate_presence_of :email
should_validate_presence_of :content
should_validate_presence_of :article_id
should_not_allow_values_for :name, "123", "bob_y", "dave!"
should_allow_values_for :name, "Bob", "Joe Smith"
should_not_allow_values_for :email, "abc", "[email protected]", "[email protected]!d.com", "[email protected]"
should_allow_values_for :email, "[email protected]", "[email protected]", "[email protected]"
end
# myapp/app/models/comment.rb
class Comment < ActiveRecord::Base
belongs_to :article
validates_presence_of :name
validates_presence_of :email
validates_presence_of :content
validates_presence_of :article_id
validates_format_of :name, :with => /\b[\w]+\b/i
end
я делаю подобный род проверку в других моделях, и это прекрасно работает, но в этом, я получаю эти ошибки:
2) Failure:
test: Comment should not allow email to be set to "[email protected]". (CommentTest)
[/Library/Ruby/Gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/assertions.rb:67:in `assert_rejects'
/Library/Ruby/Gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/active_record/macros.rb:139:in `__bind_1276100388_113010'
/Library/Ruby/Gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `call'
/Library/Ruby/Gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:351:in `test: Comment should not allow email to be set to "[email protected]". ']:
Expected errors when email is set to "[email protected]", got errors: name can't be blank (nil)name is invalid (nil)content can't be blank (nil)article_id can't be blank (nil)
Я получаю это на каждом испытании, которое следует делать, я использую Factory Girl, если это имеет значение.
Ничего себе, я понятия не имею, почему я этого не видел, возможно, работал слишком поздно. благодаря – trobrock