私はDeviseを使用してユーザーを管理しています。開発モードでは動作しますが、テストでは動作しません。開発中に、User.inviteを呼び出してください!招待状を正常に送信します。テストでは、メッセージは黙って失敗します。エラーはなく、すべての招待関連フィールドの値はゼロです。メーラー数は増えません。Invitableは、テスト環境で招待状を作成しません。
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)>'
私は一種の困惑:ここ
は私のテストは、両方のテストが失敗
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
(FactoryGirlとRSpecのを使用して)次のようになります。何か案は?
また、私はconfig/environments/test.rbにconfig.action_mailer.perform_deliveries = trueも設定しました。 – nilatti
これは 'config.action_mailer.delivery_method =:test'と同様です。 –
はい、それはデフォルトで設定されています:config.action_mailer.delivery_method =:test – nilatti