我是新手,在邮寄代码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)
我是新手..谢谢您的回答!
已经看到错误消息告诉您方法之一正在等待参数,但是没有传递给它。
在utilisateur_mailer_test.rb
中,您可以看到您正在调用在account_activation
中创建的方法utilisateur_mailer.rb
。
如您所见,此方法需要一个utilisateur参数才能执行,但是当您在utilisateur_mailer_test.rb
内部调用此方法时,您没有传递任何东西给它:mail = UtilisateurMailer.account_activation
您必须在此处指定utilisateur参数,例如,通过使用FactoryBot和Faker在工厂中创建用户。
祝你好运! :)