1

ユーザー モデルのテストをいくつか作成しようとしています。devise_invitable User.invite! を使用してアプリケーションにユーザーを招待すると、ユーザーを作成しますが、電子メールを記録していないようです。ActionMailer::Base.deliveries.count == 0. 実稼働のメール送信では、テストで顧客のメール送信者を使用するActionMailer::Base.deliveries.countと、適切な数になります。

テスト用のメール送信を設定するためにdevise_invitableに欠けているものはありますか?

4

2 に答える 2

1

テスト環境と開発環境の両方で同じ問題に直面していましたがArgumentError - An SMTP To address is required to send a message. Set the message smtp_envelope_to, to, cc, or bcc address.、ログに静かに返されることに気付きました。

を使用していなかったので、私の場合はが有効になっていたDevise::InvitationsControllerため、呼び出しconfirm!が必要でした。:confirmable

User.invite!(invite_params, current_user) do |u|
  u.confirm!
end

devise_invitable (1.4.0)

于 2015-01-29T02:16:34.160 に答える
0

これはDeviseのものではないと思います。デフォルトでは、Railsはテスト環境では実際にメールを送信しません。おそらく次のような行があります

# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test

config/environments/test.rb で実際にメールを送信するには、この行にコメントを付けて、たとえば production.rb の ActionMailer 構成を使用できますが、ActionMailer::Base.deliveries 配列を使用できるため、これはお勧めできません。それ自体でメールをテストします。

于 2013-03-26T16:52:51.730 に答える