加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为什么电子邮件没有进入ActionMailer :: Base.

发布时间:2020-12-17 04:04:54 所属栏目:百科 来源:网络整理
导读:目前在我的开发环境中,在使用邮件后,我在ActionMailer :: Base.deliveries表中没有看到任何内容.我缺少一个设置吗? config / environments / development.rb:config.action_mailer.delivery_method =:test. 应用程序/邮寄者/ notifier.rb def send_email(
目前在我的开发环境中,在使用邮件后,我在ActionMailer :: Base.deliveries表中没有看到任何内容.我缺少一个设置吗?

config / environments / development.rb:config.action_mailer.delivery_method =:test.

应用程序/邮寄者/ notifier.rb

def send_email(user)
  mail(:to => user.email,:subject => "Welcome to our website!")
end

这些是我正在运行的测试:

When /^I signup$/ do
  visit signup_path
  @user = FactoryGirl.build(:user)
  fill_in "user_email",:with => @user.email
  fill_in "user_password",:with => @user.password
  click_button "Join now"
end

Then /^I should receive a confirmation email$/ do
  email = ActionMailer::Base.deliveries.last
  email.subject.should == "Welcome to our website!"
end

现在我收到以下错误,我应该收到确认电子邮件步骤:
nil的未定义方法主题:NilClass(NoMethodError)

谢谢!

解决方法

你得到的错误说电子邮件是零.换句话说,deliveries.last方法返回nil,因为其中没有电子邮件.

可能有很多原因……我假设您使用黄瓜作为测试机制?

1.验证“click_button”是否提交

您可以尝试输入puts或log语句.确保在运行黄瓜功能时实际打印.有时这些东西不起作用,因为前端逻辑不起作用,测试失败正确.换句话说,您希望被触发的控制器端点未被触发.

2.使用单元测试验证’send_email’是否正确

接下来,验证您实际上是在发送电子邮件.编写单元测试以验证其是否有效.这应该快速而容易地开始.那里有很多文章.

最后,并没有真正相关,但你可能想要使用email-spec,这应该提供一些不错的测试方法,所以你不必重新发明轮子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读