[英]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.