Tôi mới sử dụng RSpec và TDD và gặp khó khăn khi viết một bài kiểm tra RSpec để kiểm tra xem Devise có thực sự gửi email xác nhận sau khi người dùng đăng ký hay không. Tôi biết rằng ứng dụng của tôi đang hoạt động như mong đợi bởi vì tôi đã kiểm tra vật lý chức năng trong cả phát triển và sản xuất. Tuy nhiên, tôi vẫn phải viết kiểm tra RSpec cho chức năng này và tôi không thể tìm ra cách gửi email xác nhận thông qua các kiểm tra RSpec.Kiểm tra RSpec Devise Mailer
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
Tại sao Vạch không gửi email xác nhận sau khi tôi tạo @user? Kiểm tra của tôi trả về ActionMailer :: Base.deliveries.count = 0. Như tôi đã nói, tôi mới sử dụng RSpec và TDD vì vậy tôi hoàn toàn thiếu một cái gì đó ở đây?
Tôi đoán email đang được gửi trên bộ điều khiển tạo hành động, tại đây bạn chỉ cần tạo người dùng mới và mong muốn email đó gửi một email. Vì vậy, tôi sẽ viết một thử nghiệm cho bộ điều khiển tạo hành động và làm một bài đăng với một số thuộc tính người dùng, bưu phẩm nên được gọi. – neo
Vì vậy, tôi sẽ cần phải viết thử nghiệm trong 'registrations_controller_spec.rb'? –
Đó là điều đó, miễn là email đang được gửi từ đó – neo