gpt4 book ai didi

ruby-on-rails - 如何使用 capybara 模拟 rspec 请求规范中的 JSONP 调用?

转载 作者:行者123 更新时间:2023-12-04 05:44:41 24 4
gpt4 key购买 nike

我正在将 Rails 应用程序与 Recurly.js 集成。

在我从服务器端应用程序发出重复请求之前,因此我能够 stub 与优秀 VCR gem ( https://github.com/myronmarston/vcr ) 的所有集成,但 Recurly.js 使用 JSONP 从 javascript 代码直接向服务发出请求。

问题是:如何在集成测试中模拟这些 jsonp 调用?

目前我正在使用 rspec + capybara + phantomjs 驱动程序( https://github.com/jonleighton/poltergeist )

最佳答案

我想出的唯一方法是即时 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 宏,给它一个像“stub_recurly_js”这样的花哨名称,并在每次提交 Recurly.js 表单之前调用。

如果您想更深入地挖掘,这里还有原始帖子的链接: http://pieoneers.tumblr.com/post/32406386853/test-recurlyjs-in-ruby-using-rspec-capybara-phantomjs

关于ruby-on-rails - 如何使用 capybara 模拟 rspec 请求规范中的 JSONP 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com