我有一个名为的 rails gem/enginehow_slow
,其中包含我嵌入式 ActionMailer 子类的视图。当 gem 安装在应用程序中时,会触发视图并发送电子邮件。但是,在测试中(我正在使用 minitest),视图没有被拾取或无法访问,因此调用:
HowSlow::Mailer.metrics_email.body.to_s
...返回一个空字符串 ( ""
) 而不是电子邮件的内容,如我所愿。
使用 gem/engine 的预发布版本的应用程序中的相同调用确实会返回文本电子邮件的内容,正如我所期望的那样。
在让 gem/engine 本身内部的测试可以看到引擎视图方面,我是否遗漏了一些东西?
例子:
在包含此分支上当前版本的 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:
--------------------"
然而,在测试框架中,调用HowSlow::Mailer.metrics_email.body.to_s
返回""
(空字符串)。