Я использую Devise для управления пользователями. Он работает в режиме разработки, но не в режиме тестирования. В разработке вызов User.invite! успешно отправляет приглашение. В тесте он молча терпит неудачу - никаких ошибок, просто нулевое значение для всех полей, связанных с приглашением, и счетчик почтовых программ не увеличивается.
Вот как выглядит мой тест (с использованием FactoryGirl и RSpec)
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
Оба теста не пройдены:
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)>'
Я немного в тупике. Любые идеи?
config.action_mailer.delivery_method = :test
? - person James Milani   schedule 13.04.2016