deviseから送信されるメールのMailerスペックの記述方法が分からなかったので調査をしていました。

そんなに難しい内容ではないのですが、知り得た内容を整理していきたいと思います。

Mailerスペックのファイル生成

まずは、devise用のMailerスペックのファイルを生成します。

ファイルの生成には、Railsのジェネレーターコマンドで生成したいと思います。

$ bin/rails g rspec:mailer devise/mailer

これでファイルが生成されたので、Mailerスペックを書く準備が整いました。

メール送信処理

deviseで利用されているMailerは、Devise::Mailerクラスとなります。

このクラスに、メールを作成して送信するメソッド群が用意されているのでこれらを利用します。

例えば、deviseの確認メールを送信したい場合は以下のコードとなります。

# 第一引数にモデル、第二引数にトークン(今回の用途はテストなので文字リテラルを渡してます)
mail = Devise::Mailer.confirmation_instructions(user, 'confirmation-token')

これらのメソッドを実行するとメールオブジェクトを返すので、オブジェクトを受け取ってメール内容をテストするという流れとなります。

Mailerスペックのテストに関しては、以下の記事が参考になるかと思います。

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA