Capybara 测试 HTML 电子邮件
我想使用 Capybara 来测试我的应用程序生成的 HTML 电子邮件。
我目前正在使用 email_spec
gem,因此我已经将电子邮件正文作为字符串(如果有帮助的话)。
我怎样才能让水豚加载电子邮件?
注意:我的最终目标是使用 capybara-webkit 的 这个分支 将 HTML 电子邮件呈现为图像。
I'd like to use Capybara to test the HTML emails that my app generates.
I'm currently using the email_spec
gem, so I already have the body of the email as a string, if that's helpful.
How could I get Capybara to load an email?
Note: My final goal is to use this fork of capybara-webkit to render the HTML email as a image.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不知道你为什么要让水豚来测试电子邮件。我知道 email_spec 具有以下功能:
当然,email_spec 生成的黄瓜 email_steps.rb 提供了各种指针,向您展示如何直接在 email_spec 级别使用代码来实现上述目标(即没有黄瓜)。
直接来自 email_steps.rb 文件:
假设您可以调用规范中的各种方法,例如:
然后您可以模拟打开电子邮件地址、检查电子邮件内容并访问电子邮件中的链接,甚至保存电子邮件以便您可以在其中查看Safari 或其他浏览器。
除此之外,水豚还能给你带来什么?
I'm not sure why you would get capybara to test the email. I know the email_spec has the ability to:
Certainly the cucumber email_steps.rb that email_spec generates provides various pointers to show you how to achieve the above using just code directly at the email_spec level (i.e. no cucumber).
Straight from the email_steps.rb file:
Assuming you can call the various methods in your spec like:
you can then simulate opening the email address, checking the email contents and visit links in the email or even save the email so you can view it in safari or other browser.
What would capybara give you over and above this?
我之前使用 Capybara::Node::Simple 允许您在一个字符串上使用多个 Capybara 匹配器。
然而,您提到“最终目标是使用 capybara-webkit 的这个分支将 HTML 电子邮件呈现为图像。”
虽然我不确定您为什么会在测试中这样做,但这确实意味着您需要在浏览器中加载它。
为什么不将字符串写入文件并使用 capybara-webkit(或任何可以处理 page.save_screenshot 的其他浏览器)
访问
该文件I previously did something similar using Capybara::Node::Simple which allows you to use many Capybara matchers on just a String.
However you mention "final goal is to use this fork of capybara-webkit to render the HTML email as a image."
While I'm uncertain why you would do that in your tests, it does mean that you need to load this in a browser.
Why not write the string out to a file and
visit
the file with capybara-webkit (or any of the other browsers that can handlepage.save_screenshot
)您可以尝试 PutsBox。您可以发送电子邮件至[email protected],等待几秒钟(SMTP 的东西不是即时的)然后检查你的电子邮件通过 http://preview.putsbox.com/p/whatever-you-want/最后。
示例 ^ 摘自此 帖子教程< /a>.
You could try PutsBox. You can send an email to [email protected], wait for a few seconds (SMTP stuff ins't instantaneous) then check your email via http://preview.putsbox.com/p/whatever-you-want/last.
Example ^ extracted from this post tutorial.