如何修复ArgumentError:参数数量错误(给定0,应为1)-RoR

问题描述 投票:0回答:1

我是新手,在邮寄代码Ruby on Rails中,我的代码和他的测试之间出现错误“ ArgumentError:错误的参数数目(给定0,应为1)”。

错误:

UtilisateurMailerTest#test_account_activation:

ArgumentError: wrong number of arguments (given 0, expected 1)
    app/mailers/utilisateur_mailer.rb:8:in `account_activation'
    test/mailers/utilisateur_mailer_test.rb:6 

utilisateur_mailer_test.rb:

class UtilisateurMailerTest < ActionMailer::TestCase
  test "account_activation" do
           mail = UtilisateurMailer.account_activation
(line6)    assert_equal "Account activation", mail.subject
           assert_equal ["[email protected]"], mail.to
           assert_equal ["[email protected]"], mail.from
           assert_match "Hi", mail.body.encoded
  end

utilisateur_mailer.rb:........

Line8:
  def account_activation(utilisateur)
    @utilisateur = utilisateur
    mail to: utilisateur.email, subject: "Activation du compte"
  end

我尝试删除“,mail.subject”和主题:“ Activation du compte”,并返回:ArgumentError:错误的参数数量(给定1,预期为2..3)

我是新手..谢谢您的回答!

ruby-on-rails ruby-on-rails-5
1个回答
0
投票

已经看到错误消息告诉您方法之一正在等待参数,但是没有传递给它。

utilisateur_mailer_test.rb中,您可以看到您正在调用在account_activation中创建的方法utilisateur_mailer.rb

如您所见,此方法需要一个utilisateur参数才能执行,但是当您在utilisateur_mailer_test.rb内部调用此方法时,您没有传递任何东西给它:mail = UtilisateurMailer.account_activation

您必须在此处指定utilisateur参数,例如,通过使用FactoryBotFaker在工厂中创建用户。

祝你好运! :)

© www.soinside.com 2019 - 2024. All rights reserved.