gpt4 book ai didi

ruby-on-rails - RSpec 3.6 和 Rails 5.0.1 - ArgumentError : wrong number of arguments (given 0, 预期 1)

转载 作者:行者123 更新时间:2023-11-28 21:08:21 24 4
gpt4 key购买 nike

我正在尝试使用 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 }

关于ruby-on-rails - RSpec 3.6 和 Rails 5.0.1 - ArgumentError : wrong number of arguments (given 0, 预期 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46880549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com