我想测试用户在我的应用程序中的时事通讯表单中注册后是否已成功订阅。
我发现了这个类似的问题 Testing Mailchimp 3.0 and Gibbon 2.x with Rspec 并且没有人回答。
我有一个解决方案,那就是使用像 gibbon.lists(list_id).members.retrieve
这样的长臂猿的方法并检查用户是否存在于结果对象中。
最佳答案
我不知道 MailChimp 的详细信息,但一般来说,您的应用程序将 轮询 MailChimp 的 API 以获取新订阅者,或者 MailChimp 将 ping 您应用程序的端点 以通知它。
在任何情况下,您可能都希望使用类似 https://github.com/vcr/vcr 的东西来记录 MailChimp 的响应并对其进行测试。
在第一种情况下(轮询)
你的测试会调用一个方法MailChimpFacade.new_subscribers_since(last_time_you_checked_for_subscribers)
您可以模拟该方法,以返回数据(一个订阅者、零个订阅者、多个订阅者)。
在第二种情况下 (ping)
当 MailChimp 向您的 Controller 之一发送请求时 - 使用此类 VCR 负载并将其发送到 Controller 进行测试。
这是一个普遍的想法。
还有其他一些注意事项:当 MailChimp 返回乱码等时不可用时会发生什么 - 您可能还想使用上述技术对其进行测试。
关于ruby-on-rails - 如何使用 RSpec 测试长臂猿?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48885791/