ruby-on-rails – 如何使用capybara模拟rspec请求规范中的JSONP
发布时间:2020-12-17 03:14:32 所属栏目:百科 来源:网络整理
导读:我正在使用Recurly.js集成我的rails应用程序. 在我从服务器端应用程序发出重复请求之前,因此我能够将所有与优秀VCR gem(https://github.com/myronmarston/vcr)的集成存根,但Recurly.js使用JSONP从javascript代码直接向服务发出请求. 问题是:如何在集成测试
我正在使用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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |