在我从服务器端应用程序发出重复请求之前,因此我能够将所有与优秀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调用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)