![](/img/trans.png)
[英]ArgumentError (wrong number of arguments (given 5, expected 1)) in Rails
[英]RSpec 3.6 and Rails 5.0.1 - ArgumentError: wrong number of arguments (given 0, expected 1)
我正在尝试使用RSpec编写邮件测试。 但是,它失败了,我不知道为什么。 我的失败通知如下:
Failures:
1) UserMailer welcome_email sends an email upon new user registration
Failure/Error:
def welcome_email(id)
@user = User.find(id)
mail(to: @user.email, subject: 'Welcome on board!')
end
ArgumentError:
wrong number of arguments (given 0, expected 1)
# ./app/mailers/user_mailer.rb:4:in `welcome_email'
# ./spec/mailers/user_mailer_spec.rb:10:in `block (3 levels) in <top (required)>'
我正在测试的文件中的相关代码如下:
class UserMailer < ApplicationMailer
default from: 'noreply@example.com'
def welcome_email(id)
@user = User.find(id)
mail(to: @user.email, subject: 'Welcome on board!')
end
end
这是我的规格:
require "rails_helper"
RSpec.describe UserMailer, :type => :mailer do
describe "welcome_email" do
let(:mail) { UserMailer.welcome_email }
it 'sends an email upon new user registration' do
expect(mail.subject).to eq('Welcome on board!')
end
end
end
我已经尝试了所有关于此错误的建议,这些错误在其他地方均无济于事。 我究竟做错了什么?
您的方法welcome_email
采用一个参数,但此处未传递任何内容
let(:mail) { UserMailer.welcome_email }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.