2009-11-16 16 views
26

rspecとRailsを使った電子メール送信をテストするベストプラクティスとツールは何ですか?Rspecを使用して電子メール送信をテストする方法は?

たとえば、電子メールが送信されたかどうか、または効率的なテストと受け入れ可能な範囲でテストすべきことをテストするにはどうすればよいですか。

あなたたちは例が必要な場合は、どのように私は行くし、これをテストします:

class UserMailer < ActionMailer::Base 

def jobdesc_has_been_reviewed(user, title) 
    @body[:title] = title 
    @body[:jobdesc] = jobdesc 
    @body[:url] = "http://" + user.account.subdomain + "." + Constants::SITE_URL + "/jobdescs/#{jobdesc.id}" 
end 

end 

答えて

24
+0

Thansk!あなたはそれを試してみましたか? – marcgg

+0

いいえ、私はそれを試していませんが、このライブラリは私が使用する技術をカプセル化します。 – nicholaides

+0

私はRSpecとCucumberで電子メール仕様を使用しましたが、探しているものと正確に見えます。 –

0

あなたは正確にテストしたいですか?

電子メールが実際に送信されたことをテストしますか?

テストが遅くなり、実際にはテストを実行するマシン(ネットワーク接続、smtpサーバー)に依存しますので、お勧めしません。

私が通常行うことは、電子メールを送信するコントローラーアクション/モデル/レーキタスクが正しく実行されることです(エラーなしで、最終的な送信呼び出しをスタブします)。 また、メールの本文、タイトル、受信者が正しいことを確認します。

編集:

直接検査に関連しているが、私はちょうどこのarticleの上に来たわけではありません。

私は電子メールを送信するためにモデルを使用する彼の視点が好きです。 もう少し詳しく説明してください:

コントローラを使用して、 @body、@title、@recipientなどのビュー変数を設定します。

私は正しいメールテンプレート(ビュー)が正しく描画されていることを確認します。 これは私の視点からは間違いが起こることです。

私は本日、後で家に帰ったときにこのポストを例として更新します。私は本当に私がテストしたいのか分からない

+0

良いライブラリのように見える...私は(メールがある場合のテストを言わせて、正しい報道を探しています有効な情報を持っていることを確認してください)。最後の段落で説明したことをどうやってやっていくのかを教えてください。私はかなりrspecに新しいので、より多くの情報を私に与えることができます幸せ私は:)ありがとう – marcgg

+0

ポストが更新されました。今夜コード例を投稿しようとします –

関連する問題