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

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

概述我正在使用Recurly.js集成我的rails应用程序. 在我从服务器端应用程序发出重复请求之前,因此我能够将所有与优秀VCR gem(https://github.com/myronmarston/vcr)的集成存根,但Recurly.js使用JSONP从javascript代码直接向服务发出请求. 问题是:如何在集成测试中模拟这些jsonp调用? 目前我正在使用rspec capybara 我正在使用Recurly.Js集成我的rails应用程序.

在我从服务器端应用程序发出重复请求之前,因此我能够将所有与优秀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调用?全部内容,希望文章能够帮你解决ruby-on-rails – 如何使用capybara模拟rspec请求规范中的JSONP调用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存