我想出的唯一方法是即时 javascript 修补。至于 Poltergeist gem 有一种方法可以在测试浏览器中直接执行 javascript,您可以应用以下补丁将 Recurly.js 转换为测试模式:
# The original 'save' function performs JSONP request to Recurly.
# A token is borrowed during the real API interaction.
page.driver.execute_script("""
Recurly.Subscription.save = function (options) {
Recurly.postResult('/subscription', { token: 'afc58c4895354255a422cc0405a045b0' }, options);
}
""")
只需制作一个 capybara-macros,给它起一个花哨的名称,例如 'stub_recurly_js' 并在每次提交 Recurly.js 表单之前调用。
如果您想更深入地挖掘,这里也是原始帖子的链接:http: //pieoneers.tumblr.com/post/32406386853/test-recurlyjs-in-ruby-using-rspec-capybara-phantomjs