【问题标题】:how to test mailgun sending emails with capybara?如何测试 mailgun 使用 capybara 发送电子邮件?
【发布时间】:2019-02-04 09:24:54
【问题描述】:

我的应用程序正在运行中,我向应用程序用户发送了一封电子邮件,目的不同——从设计通知到任何其他目的。我正在使用 mailgun 来发送电子邮件:

def send_simple_message
  RestClient.post "https://api:YOUR_API_KEY"\
  "@api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages",
  :from => "Excited User <mailgun@YOUR_DOMAIN_NAME>",
  :to => "bar@example.com, YOU@YOUR_DOMAIN_NAME",
  :subject => "Hello",
  :text => "Testing some Mailgun awesomness!"
end

电子邮件发送和接收效果很好,但我想知道如何使用 Capybara 在验收测试中对其进行测试。 Capybara 电子邮件根本不起作用。有什么想法吗?

更新

根据最佳答案,我重建了我的发送方法以使用 mailgun gem。现在,我可以在 rspec 中收到电子邮件,因为我不知道如何单击电子邮件中的链接。我尽我所能,但没有运气。将得到帮助。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 capybara mailgun


    【解决方案1】:

    capybara-email 可能不适合您,因为您没有使用 Rails ActionMailer 与 Mailgun 集成 - 除此之外,您可能正在使用自述文件中记录的具有测试模式的 mailgun-ruby gem - @ 987654321@。如果你不打算使用它,那么你需要使用 WebMock 或等效的方法来模拟请求

    【讨论】:

    • 谢谢。也许你知道,我怎样才能点击我的电子邮件 [:html] 中的链接?例如,它包含这样的html:

      欢迎!

      您可以通过以下链接确认您的帐户电子邮件:

      localhost:3000/users/…我的帐户

      一个>
    • @NickolayEfimov 您需要解析电子邮件内容(nokogiri 等),提取 url,然后在当前 capybara 会话中访问 url。这正是capybara-email 对通过 ActionMailer 测试邮件发送的电子邮件所做的事情。在您的情况下(因为您使用的是 mailgun 测试模式),您需要与 Mailgun::Client.deliveries 中的电子邮件的相关成员一起执行此操作 - 如果您需要更多详细信息,请打开一个新的问题。
    猜你喜欢
    • 2021-02-11
    • 1970-01-01
    • 2017-10-12
    • 2021-01-01
    • 1970-01-01
    • 2016-01-24
    • 2014-04-14
    • 2015-03-25
    • 1970-01-01
    相关资源
    最近更新 更多