繁体   English   中英

RSpec测试Devise Mailer

[英]RSpec testing Devise Mailer

我是RSpec和TDD的新手,我在编写RSpec测试时遇到困难,以测试Devise是否真的在用户注册后发送确认电子邮件。 我知道我的应用程序正在按预期工作,因为我已经在开发和生产中对功能进行了物理测试。 但是,我仍然需要为此功能编写RSpec测试,我无法弄清楚如何通过RSpec测试发送确认电子邮件。

factories/user.rb

FactoryGirl.define do
  factory :user do
    name "Jack Sparrow"
    email { Faker::Internet.email }
    password "helloworld"
    password_confirmation "helloworld"
    confirmed_at Time.now
  end
end

spec/models/user_spec.rb

require 'rails_helper'

RSpec.describe User, type: :model do

  describe "user sign up" do
    before do
      @user = FactoryGirl.create(:user)
    end

    it "should save a user" do
      expect(@user).to be_valid
    end

    it "should send the user an email" do
      expect(ActionMailer::Base.deliveries.count).to eq 1
    end
  end
end

为什么Devise在创建@user后没有发送确认电子邮件? 我的测试返回ActionMailer :: Base.deliveries.count = 0.正如我所说的,我是RSpec和TDD的新手所以我在这里完全遗漏了什么?

Devise使用自己的邮件程序,因此如果将测试放在正确的控制器文件中,则尝试使用Devise.mailer.deliveries而不是ActionMailer::Base.deliveries

暂无
暂无

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

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