问题标签 [vcr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
396 浏览

ruby-on-rails - 使用 RSpec 测试来自 Delayed::Job 的错误回调

全部,

我有一个自定义的 Delayed::Job 设置,它使用成功和错误回调来更改在后台修改的对象的属性。此对象正在与外部 API 交互。为了测试这一点,我使用 RSpec 和 VCR 来记录外部 API 交互。

这是我的工人:

这是我的 DJ 设置:

我已经成功使用 RSpec 来测试success回调的结果。我想做的是测试error回调的结果。外部 API 对响应时间没有任何特定的长度限制,对于我的应用程序,我想将最大等待时间限制为 2 分钟(如max_run_timeDJ 设置中所示)。

现在,我该如何测试呢?API 没有返回超时,所以我不确定我需要如何在 VCR 中处理这个。DJ 作业没有在队列中运行,我特别不希望套件在每次运行时延迟 2 分钟。

想法或建议将不胜感激!谢谢!

0 投票
1 回答
760 浏览

facebook-graph-api - VCR 不会在成功请求时录制磁带,仅在失败请求时录制

我有一个简单的测试来获取一个 Facebook 对象。我正在使用 Curl 进行请求。

我的录像机配置是:

当我运行测试时,它通过了,并记录了以下内容:

但是磁带没有录制,目录是空的。我试过:record => :all同样的结果。

通常,人们在为他们正在使用的库使用不兼容的钩子时会遇到这个错误,但事实并非如此。我正在使用 webmock 和遏制。

奇怪的是,当请求失败(例如,令牌过期)时,磁带会被记录下来。当它修复时,我删除了文件,它不再被记录。

有没有人有同样的问题?

0 投票
2 回答
956 浏览

ruby-on-rails - 将 VCR 限制为规格

有没有办法让 VCR 仅在 Rails 应用程序中通过 rspec 调用时才处于活动状态?它对我的测试很有用,但我不希望它在这些测试之外拦截请求。

如果我使用客户端连接到我的应用程序并且应用程序正在调用外部 Web 服务,则会禁用 Real HTTP 连接。

谢谢,马克

0 投票
0 回答
442 浏览

ruby-on-rails - 在我的 Rails 应用程序中使用黄瓜和 WebMock/VCR 测试条带结帐(未连接到互联网时失败)

失败的黄瓜步骤。当没有互联网连接时。它无法下载条带结帐https://stripe.com/docs/checkout但如何修复或存根我不知道 :( 抱歉,如果问题不是很清楚,我的英语很烂。

测试我在哪里使用 VCR

视图文件中的代码,其中 checkout.js 已连接。如果没有连接到互联网,此按钮不会出现。

0 投票
2 回答
1851 浏览

ruby-on-rails - 带有 webmock 的 VCR 阻止了我的 rspec

我的录像机与 webmock 规范有问题。当我运行 rspec spec/ 时,我总是遇到同样的问题

我试图解决这个问题:

  1. 将 c.ignore_localhost = true 添加到我的 vcr 配置中

  2. 将此代码添加到我的 rails_helper.rb

    需要 'webmock/cucumber' WebMock.disable_net_connect!(:allow_localhost => true)

  3. 我尝试删除我使用 vcr 的所有测试,然后运行 ​​rspec spec/ 但仍然出现此错误

  4. 这个错误告诉我我可以存根这个请求,但我该怎么做呢?

知道如何解决此错误吗?

0 投票
0 回答
106 浏览

ruby-on-rails - 使用 hydra 和 vcr gem 时请求未运行

我目前正在尝试在使用 typheous 和 hyrda 时进行发布请求。我正在使用 VCR gem 来测试响应。

我目前收到以下错误:ArgumentError:Array 与 Array 的比较失败当我运行此行时:hydra.run

我的要求如下:

如果我删除用户 ID 和课程 ID,它可以正常工作,但只要 [0] 有多个数组成员,我就会收到上述错误。

此外,如果我删除 VCR gem 那么它工作正常。

任何建议如何解决这个问题

0 投票
0 回答
144 浏览

ruby-on-rails - VCR 创建一个文件,但没有在其中放入任何内容

我正在尝试测试将法拉第与 VCR 结合使用的解析器。测试第一次通过并创建一个空盒式磁带。当我再次运行它时,它会碰到空的磁带并失败。我已经在控制台中测试了解析器,并且每次都能正常工作。这是代码:

配置

解析器类

规格文件

结束结束结束

0 投票
0 回答
487 浏览

ruby-on-rails - Webmock 和 VCR,如果没有磁带,则允许 Http 连接

我有一个问题,我可以运行一个单独使用 vcr 的测试并且它可以工作,它会创建磁带并在下一次测试中使用它。伟大的。

问题是当我一起运行所有测试时,这个特定的测试失败了,因为 webmock 禁用了 http 连接,我在 Github repo 页面上看到了这个例子,它解释了如何期待真实的而不是存根的请求

我的问题是我该怎么说:除非有磁带,否则允许请求的 Http 连接。当允许 HTTP 连接时,它还应该创建盒式磁带。

录像机设置

上面的 if 语句存在,因为不是每个测试都创建一个磁带。所以我们希望它们在不需要磁带时运行。

考试

自行运行良好,创建磁带,由于 webmock 与所有其他测试一起运行时失败。

失败

0 投票
1 回答
159 浏览

ruby-on-rails-4 - VCR + Webmock + net_http + NTLM 在没有猴子补丁的情况下无法工作

为了让 NTLM 与 Webmock + net_http 一起工作,我需要启用 net_http_connect_on_start 选项。例如,在控制台或规范的开头,我可以使用:

但录像机配置只允许

为了让我的测试规范正常工作,我在 WebMock 上做了一个猴子页面:

我希望能够配置 VCR 以传递该选项而不是猴子补丁。

我挖掘了 VCR 代码,但找不到任何地方可以修改它并提交拉取请求。

这是录像机的问题,还是我遗漏了什么?

0 投票
1 回答
3694 浏览

ruby-on-rails - 在功能场景中使用带有 Rspec 的 VCR

我有一个使用自定义身份验证 gem 的 Rails 4 应用程序,它根据第三方 API 对用户进行身份验证。该应用程序需要对网站上的大多数操作进行身份验证(访问者可以做的很少)。

我正在尝试使用 VCR 记录在所有集成测试的身份验证期间发出的 api 请求,但我可以在 SO 和 Relish 文档中找到的所有示例仅涵盖如何在“描述执行”规范中使用 Rspec 执行此操作,如此处所引用:

https://www.relishapp.com/vcr/vcr/v/1-6-0/docs/test-frameworks/usage-with-rspec

由于没有客户参与这个项目,我正在使用 Rspec 和 Capybara 而不是 Cucumber 编写集成测试,所以我的测试使用的是“功能/场景”格式,如下所示:

使用文档中描述的命令:

在“场景”块内,返回错误:

我按照文档在我的 spec/rails_helper.rb (包含在 spec/spec_helper.rb 中)中设置了 VCR ......基本上看起来像这样:

显然,将 gem 'vcr' 添加到了我的 Gemfile 开发/测试组中,它是控制台和 binding.pry 中的一个测试内部的东西。

有人在 Rspec 功能中使用过 VCR 吗?或者对我可以做些什么作为解决方法有任何建议?

提前致谢