Kullanıcıları yönetmek için Devise kullanıyorum. Geliştirme modunda çalışır, ancak testte değil. Gelişimde, User.invite çağırıyor! başarılı bir davetiye gönderir. Testte, sessizce başarısız olur - hata yok, sadece davetiye ile ilgili tüm alanlar için bir sıfır değeri ve mailler sayısı artmaz.Invisible olayı, test ortamında bir davetiye oluşturmuyor
İşte benim test
require "rails_helper"
describe "with inviting user" do
let(:user) { create(:user) }
before(:each) do
Devise.mailer.deliveries = []
User.invite!({email: user.email}, user)
end
after(:each) do
Devise.mailer.deliveries.clear
end
it 'should generate invite token' do
expect(user.invitation_token).to_not be_nil
end
it 'should send an email' do
expect(Devise.mailer.deliveries.count).to eq(1)
end
end
Her iki testin başarısız (FactoryGirl ve RSpec kullanarak) şu şekilde görünür:
1) with inviting user should generate invite token
Failure/Error: expect(user.invitation_token).to_not be_nil
expected: not nil
got: nil
# ./spec/mailer/mailer_spec.rb:20:in `block (2 levels) in <top (required)>'
2) with inviting user should send an email
Failure/Error: expect(Devise.mailer.deliveries.count).to eq(1)
expected: 1
got: 0
(compared using ==)
# ./spec/mailer/mailer_spec.rb:28:in `block (2 levels) in <top (required)>'
ben tür stumped. Herhangi bir fikir?
Sadece FYI Ben de config.action_mailer.perform_deliveries = config/environment/test.rb dosyasında – nilatti
değerini ayarlıyorum. Bunu ben de buna sahip oldum 'config.action_mailer.delivery_method =: test'? –
Evet, varsayılan olarak ayarlandı: config.action_mailer.delivery_method =: test – nilatti