1

埋め込まれた ActionMailer サブクラスのビューを含むRails gem/engine を呼び出しました。how_slowgem がアプリケーションにインストールされると、ビューがトリガーされ、電子メールが送信されます。ただし、テスト(私はミニテストを使用しています)では、ビューが取得されないか、アクセスできないため、次の呼び出しが行われます。

HowSlow::Mailer.metrics_email.body.to_s

""...意図したとおり、メールの内容ではなく空の文字列 ( ) を返します。

実際、gem/エンジンのプレリリース版を使用するアプリ内で同じ呼び出しを行うと、期待どおりにテキスト メールの内容が返されます。

エンジンビューを宝石/エンジン自体の内部のテストに表示するという点で何か不足していますか?

例:

このブランチの現在のバージョンの gem を含むアプリ内で取得します (読みやすいように改行を分割しました)。

 > HowSlow::Mailer.metrics_email.body.to_s
=> "Slowest 12 requests, sorted by total_runtime:
   --------------------
   2013-06-22T11:42:21-05:00 :: sections/show    270 / 12 / 249
   2013-06-21T22:50:21-05:00 :: log_books/index  263 / 23 / 225
   2013-06-22T11:42:18-05:00 :: log_books/index  257 / 24 / 217
   2013-06-22T11:42:21-05:00 :: log_books/show   58 / 9 / 0
   2013-06-22T11:42:24-05:00 :: sections/show    56 / 4 / 14
   2013-06-22T11:42:20-05:00 :: log_books/index  39 / 11 / 27
   2013-06-22T11:42:26-05:00 :: log_books/index  38 / 12 / 25
   2013-06-22T11:42:31-05:00 :: sections/show    38 / 5 / 30
   2013-06-22T11:42:25-05:00 :: sections/show    28 / 4 / 20
   2013-06-22T11:42:28-05:00 :: sections/show    21 / 4 / 14
   2013-06-22T11:42:32-05:00 :: sections/show    20 / 3 / 12
   2013-06-22T11:42:28-05:00 :: log_books/show   5 / 1 / 0


   Counters sorted by alpha_asc:
   --------------------"

問題のビューはこちら: https://github.com/normalocity/how_slow/blob/12-mailer/app/views/how_slow/mailer/metrics_email.text.erb

ただし、テスト フレームワークでは、(空の文字列)への呼び出しがHowSlow::Mailer.metrics_email.body.to_s返されます。""

4

0 に答える 0