加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – vcr与capybara-webkit

发布时间:2020-12-16 20:39:11 所属栏目:百科 来源:网络整理
导读:我正在使用capybara-webkit来测试与第三方网站的集成(我需要javascript). 我想使用vcr记录在集成测试期间提出的请求,但是capybara-webkit不会通过net http,所以vcr无法记录它们.我将如何编写适用于vcr的适配器,这将允许我记录这个reqeusts? 解决方法 不幸的
我正在使用capybara-webkit来测试与第三方网站的集成(我需要javascript).

我想使用vcr记录在集成测试期间提出的请求,但是capybara-webkit不会通过net http,所以vcr无法记录它们.我将如何编写适用于vcr的适配器,这将允许我记录这个reqeusts?

解决方法

不幸的是,VCR与capybara-webkit非常不兼容.事实是,capybara webkit正在使用webkit,它在c中.作为VCR基础的Webmock和Fakeweb只能用于Ruby Web请求.使两者合作可能是一项巨大的任务.

我已经解决了这个问题两种方法:

第一个(hacky,但有效的)是将一个新的javascript文件添加到仅包含在测试环境中的应用程序中.这个文件存储了引起外部Web请求的JS类.除了这种方法的纯粹黑客之外,它需要每次添加或更改新请求时,您还必须更改存根.

第二种方法是通过我自己的服务器路由所有外部请求,通过我的服务器有效地代理所有外部请求.这有一个巨大的缺点,你必须对你想消费的一切都有一个动作(你可以通过一些工作进行泛化).它也受到这样一个事实的影响,即可以将请求完成的时间提高一倍.然而,由于Ruby现在正在做出这些请求,所以您可以使用VCR来获得荣耀.

在我的情况下,由于我需要ruby来操纵数据,因此我可以保持我的javascript源代码,我的方法#2已经更有利于我的优势.然而,我已经使用方法#1已经有一段时间了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读