cou*_*dev 9 ruby rspec ruby-on-rails devise factory-bot
我是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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
为什么Devise在创建@user后没有发送确认电子邮件?我的测试返回ActionMailer :: Base.deliveries.count = 0.正如我所说的,我是RSpec和TDD的新手所以我在这里完全遗漏了什么?
设计使用自己的邮件,所以尝试Devise.mailer.deliveries,而不是ActionMailer::Base.deliveries本身,如果把测试在右侧控制器的文件不起作用。
| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |