【问题标题】:email validation arguments - Wrong number of args in test Michael Hartl Rails tutorial电子邮件验证参数 - 测试中错误的参数数量 Michael Hartl Rails 教程
【发布时间】:2019-11-29 11:14:16
【问题描述】:

按照第 6 章中的说明进行操作,教程测试应该是绿色的(没有失败/错误),但我收到以下错误 期待测试结果通过。从错误中,我了解到缺少一个 arg,但不确定要更改什么

user_test.rb

test "email validation should accept valid addresses" do
  valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org 
  first.last@foo.jp alice+bob@baz.cn]
  valid_addresses.each do |valid_address|
    @user.email = valid_address
    assert @user.valid?, "#{valid_address.inspect} should be valid"
  end
end

test "email validation should reject invalid addresses" do
  invalid_addresses = %w[user@example,com user_at_foo.org user.name@example. foo@bar_baz.com foo@bar+baz.com]
  invalid_addresses.each do |invalid_address|
    @user.email = invalid_address
    assert_not @user.valid?, "#{invalid_address.inspect} should be invalid"
  end
end

#user.rb
class User < ApplicationRecord
  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 }
end

错误[“test_email_validation_should_accept_valid_addresses”,UserTest,0.41518251600001577] test_email_validation_should_accept_valid_addresses#UserTest (0.42s) ArgumentError:ArgumentError:参数数量错误(给定 1,预期 2) test/models/user_test.rb:41:in test' test/models/user_test.rb:41:inblock in '

【问题讨论】:

  • 正如错误所说,失败的测试称为“test_email_validation_should_accept_valid_addresses”,这不是您在问题中发布的测试。你能告诉我们那个名字的测试吗?
  • 现在已经添加了

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

我现在已经设法让它工作了。似乎测试上的缩进导致 AWS cloud9 抛出错误,要求输入预期的关键字_end。我相信添加一个额外的结尾会创建上述错误消息。解决方案:在正确的地方使用keyword_end正确缩进代码解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多