情况:使用Rspec、FactoryGirl和VCR测试Rails应用程序。每次创建用户时,都会通过Stripe的API创建关联的Stripe客户。测试时,添加VCR.use_cassette或describe"...",vcr:{cassette_name:'stripe-customer'}do...到涉及用户创建的每个规范。我的实际解决方案如下:RSpec.configuredo|config|config.arounddo|example|VCR.use_cassette('stripe-customer')do|cassette|example.runendendend但这是
我正在编写一个作为gem的API包装器,我想使用RSpec测试API响应。问题是所有API请求都是使用GET发出的,并且在url中包含一个APIkey:例如游戏/元数据/{api_key}这给测试带来了问题,因为我不想将APIkey保留在git存储库历史记录中。有什么方法可以进行这些规范测试,最好是使用RSpec/VCR,而不是将APIkey存储在版本控制中?我试过使用环境变量,但VCR仍然存储整个请求,而不仅仅是响应主体。 最佳答案 VCR有一个专门针对这些情况的配置选项:VCR.configuredo|c|c.filter_se
我为一个RESTapi开发了一个Ruby接口(interface)。我使用rspec和vcr进行测试。所有测试都使用专门为其创建的帐户凭据。我无法决定:将我的测试(录像带)的缓存响应存储在存储库,或允许用户和订阅者编写自己的磁带?以皇帝之名!让圣战开始吧! 最佳答案 VCR的盒式磁带是您测试的固定装置。您确实需要将它们提交到存储库中,否则您的测试将无法在其他机器上正确运行,或者只能在严重外部依赖性的情况下进行更正,这违反了测试原则。当然,您需要在保留上述内容的同时向公众或团队隐藏您的凭据。解决方案是filter_senstive_d
我有一个非常简单的模块,我正在使用VCRgem对Ruby进行测试。我已经根据文档配置了VCR,但似乎无法在cassette目录中获取要录制的磁带。为了以防万一,我什至将cassette目录的权限更改为777。真正奇怪的是,我已经完全删除了cassette目录,运行specs,然后创建了一个新的cassette目录。我正在使用Typhoeus0.4.2和Hydra。我目前无法升级Typhoeus。相关代码:require'rspec'require'vcr'require_relativeFile.join("..","crawl_handler")VCR.configuredo|c|c
是否有Ruby'sVCR的java替代品??据我所知,使用VCR的好处是巨大的,您可以运行“集成测试”并记录结果,将它们存储在本地某个地方。现在,从下次需要运行测试时起,您可以使用第一次运行时记录的数据模拟实际数据库命中。Java世界中有类似的东西吗?如果没有,如果我尝试实现它可能会遇到什么样的瓶颈?VCR只记录HTTP交互,但是否可以采用这种方法来记录,比如对其他团队的API的任何类型的数据库操作/函数调用,我不需要测试,基本上这将使我免于模拟所以通过自动化来完成很多事情。Here是带有Ruby单元测试的VCR示例: 最佳答案 查
在我的cucumber支持目录中,我在vcr.rb中有以下内容:require'vcr'VCR.configuredo|c|c.cassette_library_dir='fixtures/vcr_cassettes'c.hook_into:webmockc.ignore_localhost=truec.default_cassette_options={record::new_episodes}end我正在对调用GoogleMapsAPI的城市名称进行地理编码。我正在尝试记录并stub这些请求,但它一直将相同的请求记录到同一个yml文件:-request:method:geturi:
我正在使用capybara-webkit来测试与第三方网站的集成(我需要javascript)。我想使用vcr来记录在集成测试期间发出的请求,但capybara-webkit不通过nethttp,因此vcr无法记录它们。我将如何着手编写一个允许我记录请求的vcr适配器? 最佳答案 不幸的是,VCR与capybara-webkit非常不兼容。事实上,capybarawebkit正在使用webkit,它是在c中。作为VCR基础的Webmock和Fakeweb只能用于Rubyweb请求。让两者协同工作可能是一项艰巨的任务。我用两种方法解决
我正在使用VCRgem来记录http交互并在将来重播它们。我想在uri请求中过滤掉我的实际密码值。以下是uri的示例:http://services.somesite.com/Services.asmx/CabinsUsername=long&Password=john&StartDate=03%2F22%2F2012&EndDate=03%2F29%2F2012虽然这里提供了解释,但我自己尝试了几次后仍然不确定如何去做:https://www.relishapp.com/myronmarston/vcr/v/2-0-0/docs/configuration/filter-sensit
我已经在这个领域做了一些研究,但没有找到任何解决方案。我有一个站点,其中对facebook进行异步ajax调用(使用JSONP)。我正在使用VCR在Ruby端记录我所有的HTTP请求,所以我认为将此功能也用于AJAX调用会很酷。所以我尝试了一下,想出了一个代理尝试。我正在使用PhantomJS作为headless浏览器和poltergeist来集成到Capybara中。Poltergeist现在配置为使用这样的代理:Capybara.register_driver:poltergeist_vcrdo|app|options={:phantomjs_options=>["--proxy=
我想使用Ruby'sVCRlibrary的“记录/回放”机制。或BetamaxfortheJVM.是否有以相同方式工作的Python库?如果不是,您如何测试您的REST客户端调用,而不用担心测试缓慢且不稳定? 最佳答案 VCR有一个Python端口,名为VCR.py近几年发展起来的。如果您已经知道如何使用VCR并且对它很熟悉,您还可以考虑运行一个本地ruby代理服务器(使用机架之类的东西)并在其中加载VCR。然后你可以测试任何语言的代码......只要确保HTTP请求是通过你的本地服务器代理的。这是VCR'srackmiddle