简体   繁体   English

Rspec Rails测试装置邮件

[英]Rspec rails test devise mailer

I was trying to test devise mailer via rspec . 我正在尝试通过rspec测试devise邮件程序。

Here is devise_mailer_spec.rb 这是devise_mailer_spec.rb

require "rails_helper" 需要“ rails_helper”

RSpec.describe Devise::Mailer do
  it "sends a confirmation email to correct email with custom text" do
    user = FactoryGirl.create(:user, confirmed_at: nil)
    confirmation_email = Devise.mailer.deliveries.last
    expect(user.email).to eq confirmation_email.to[0]
    expect(confirmation_email.body.to_s).to have_content 'You can confirm your account email'
  end
end

However, I got this error. 但是,我得到了这个错误。

Failures:

  1) Devise::Mailer sends a confirmation email to correct email with custom text
     Failure/Error: expect(confirmation_email.body.to_s).to have_content 'You can confirm your account email'

       expected <p>Welcome adolfo@schoen.io!</p>

       <p>You can confirm your account email through the link below:</p>

       <p><a href="http://localhost:3000/users/confirmation?confirmation_token=sPMPQRe5SLDPgpakVy3J">Confirm my account</a></p>
        to respond to `has_content?`
     # ./spec/mailers/devise_mailer_spec.rb:9:in `block (2 levels) in <top (required)>'

Finished in 8 minutes 38 seconds (files took 5.02 seconds to load)
2 examples, 1 failure

Failed examples:

rspec ./spec/mailers/devise_mailer_spec.rb:4 # Devise::Mailer sends a confirmation email to correct email with custom text

I've set binding.pry into code, and I can make sure confirmation_email.body.to_s will throw 我已经将binding.pry设置为代码,并且可以确保confirmation_email.body.to_s将抛出

"<p>Welcome edgardo@heidenreich.name!</p>\n\n<p>You can confirm your account email through the link below:</p>\n\n<p><a href=\"http://localhost:3000/users/confirmation?confirmation_token=_qi3a9rsucm6YhG8CUjt\">Confirm my account</a></p>\n"

尝试:

expect(confirmation_email.body.encoded).to include 'You can confirm your account email'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM