ruby-on-rails - 如何修复 ArgumentError:参数数量错误(给定 0,预期为 1) - RoR
问题描述
我是初学者,在邮件程序代码 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 ["to@example.org"], mail.to
assert_equal ["from@example.com"], 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
例如,您必须通过使用FactoryBot和Faker的工厂创建用户来指定utilisateur参数。
祝你好运 !:)
推荐阅读
- macos - 我可以使用 NSISO8601DateFormatter 解析 ISO-8601 字符串吗?
- android - 如何使用 CoordinatorLayout 和 windowSoftInputMode 更改状态背景颜色?
- python - SQL计算两列数据并更新第三列的值
- python - 我尝试制作的循环无法正确循环
- java - Java FXML 将内容动态加载到多个不同的选项卡上
- apache-kafka - 增加分区数
- ocr - 文本框文件 Tesseract 4.0
- javascript - SnapSVG如何向该元素添加填充属性
- c# - 如何通过ajax从c#接收文件
- c++ - 是否可以将 std::nothrow 参数用于放置新操作?