Rails测试失败 - Hartl教程Ch。 6 Page 256/257

时间:2015-06-10 06:41:25

标签: ruby-on-rails ruby unit-testing

根据Hartl的独特性:ruby.rb中的Ruby被认为是真的。 然而,当我将其设置为false时,我的测试才会通过。 你能发现错误吗?

REGEX部分是正确的 - 它只是关于这一行:  唯一性:case_sensitive:false

测试:

test "email addresses should be unique" do
    duplicate_user = @user.dup
    duplicate_user.email = @user.email.upcase
    @user.save
    assert_not duplicate_user.valid?
end

型号:(ruby.rb)

class User < ActiveRecord::Base
  validates :name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, length: { maximum: 255 },
                  format: { with: VALID_EMAIL_REGEX },
                  uniqueness: { case_sensitive: false }
end

2 个答案:

答案 0 :(得分:1)

尝试在括号中包含class User < ActiveRecord::Base validates :name, presence: true, length: { maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } end ,如下所示:

uniqueness

有关data = [ [ 100, 20, 30 ], [ 20, 10, 20 ], [ 50, 400, 20 ] ] here

的更多信息

希望这有帮助。

答案 1 :(得分:0)

问题可能是因为您可能已包含该行 attr_accessor:name,:用户模型中的电子邮件。

如果删除该行,则不应出现任何错误。

希望这会有所帮助