问题标签 [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 投票
2 回答
2955 浏览

rspec - rspec 挂钩中当前示例/组的名称

我正在添加一个 rspec 钩子,它允许我打开 vcr 并将当前示例的名称用作磁带名称。

问题是我不知道如何获取当前示例的名称(example.name 不起作用)。

0 投票
1 回答
784 浏览

ruby-on-rails - 同时使用 rspec 和 cucumber 时在哪里放置 VCR 配置

我正在使用 rspec 和黄瓜。集成级别测试的黄瓜,但用于单元测试的 rspec。

我已经将 vcr 用于黄瓜,但也想将它用于 rspec。放置 vcr 配置的正确位置在哪里?我宁愿不在 features/support 和 rspec/support 中复制它。

0 投票
1 回答
1050 浏览

ruby-on-rails - 如何阻止 VCR 覆盖磁带中的 erb

我们最近开始在黄瓜测试中使用VCR来存根请求。我们使用黄瓜表来描述不同类型的请求,并将它们作为变量存储在小黄瓜中。我们的磁带文件都经过重新设计以包含 erb,以便我们可以将值替换为我们想要测试的请求。

问题在于,每当有新请求时,VCR 都会记录新请求并覆盖(删除)磁带中的所有 erb,并用为该示例插入的请求替换它。每次我们运行值已更改的请求(例如,我们从正在与之交谈的 API 接收到的时间戳的值)时,都需要将所有 erb 复制回磁带文件中。这令人沮丧,因为测试一直在运行。

有谁知道为什么 VCR 在录制新响应时会去掉 erb?任何解决方法的想法?有没有办法在插值之前保存模板?

0 投票
1 回答
1963 浏览

ruby - 使用 VCR / WebMock 时如何允许 Web 请求?

我目前正在使用 RSpec2、Cucumber 和 VCR(通过 WebMock),一切都很好。

对于 VCR,通常所有请求都被记录下来,然后针对记录的磁带重放。

现在我想在某些情况下允许真正的 Web 请求:

  • 在 Cucumber 中,我设置了一个“实时”配置文件,它运行任何带有@live. 对于这些测试——而且仅限于这些测试——我希望允许真正的网络请求。
  • 我想不时针对真实的 api 运行测试并忽略记录
0 投票
2 回答
3395 浏览

java - Ruby 的 vcr 的 Java 替代品?

Ruby 的 VCR有 java 替代品吗?

据我了解,使用 VCR 的好处是巨大的,您可以运行“集成测试”并记录结果,并将它们存储在本地某个地方。现在,下次需要运行测试时,您可以使用第一次运行时记录的数据来模拟实际的数据库命中。

  1. java世界中有类似的东西吗?
  2. 如果没有,如果我尝试实施它可能会遇到什么样的瓶颈?

VCR 只记录 HTTP 交互,但是可以用这种方法来记录,比如任何类型的数据库操作/对其他团队 API 的函数调用,我不需要测试,基本上这可以让我从模拟这么多事情中解脱出来自动化它。

下面是一个带有 Ruby 单元测试的 VCR 示例:

0 投票
5 回答
4948 浏览

javascript - Node.js:使用 VCR 进行测试

node.js是否有VCR测试系统?

0 投票
1 回答
2073 浏览

ruby-on-rails - 如何为模型地理编码设置 VCR 全局录像带?

我有一个健身房协会的用户模型。健身房通过 geocoder gem 使用 google api 进行地理编码,这是在 after_save 完成的。在我的健身房规范中,我能够添加 use_vcr_cassette 来记录请求并通过规范。

现在的问题是我的用户工厂创建了一个健身房关联,因此任何使用用户工厂的规范都失败了,因为它不知道如何处理地理编码请求,因为所有外部请求都已关闭。

我如何在全球范围内应用以前的健身房卡带来满足我的健身房工厂提出的要求?

0 投票
1 回答
1954 浏览

testing - 通过标签将 VCR 与 Cucumber 一起使用

我有一些需要与 Google Maps Routing API 交互的 Cucumber 功能。我正在尝试使用VCR消除这些交互。

我在我的功能中添加了一个 VCR 标签,如下所示:

然后添加我的录像机配置features/support/vcr.rb

但是当我运行我的杯子时,我被告知..

0 投票
1 回答
2496 浏览

ruby - 使用 RSpec 和 VCR 测试 Web API

我正在编写一个 API 包装器作为 gem,我想使用 RSpec 测试 API 响应。

这样做的问题是所有 API 请求都是使用 GET 发出的,并且在 url 中包含一个 API 密钥:

例如game/metadata/{api_key}

这给测试带来了问题,因为我不想将 API 密钥保留在 git 存储库历史记录中。有什么方法可以进行这些规范测试,最好使用 RSpec/VCR,而不是将 API 密钥存储在版本控制中?

我试过使用环境变量,但 VCR 仍然存储整个请求,而不仅仅是响应正文。

0 投票
0 回答
1367 浏览

devise - omn​​iauth-facebook、devise、capybara、capybara-mechanize、vcr、rpsec 集成测试的简单示例?

我正在为omniauth-facebook、devise、capybara、capybara-mechanize(可能带有VCR)和rpsec集成测试寻找一个简单的例子......

Capybara 无法连接到外部网站。所以需要水豚机械化。也许录像机可以加快速度。此链接描述了如何获取测试 facebook 用户:https ://developers.facebook.com/docs/test_users/

如omniauth 文档中所述,使用mock 可以很好地测试模型和控制器的逻辑。这需要 specs/helpers/omniauth.rb 中的以下代码,并在 rspec 集成测试的 :before 中调用 set_omniauth。

但是,如果有一个真正的针对 facebook 服务器运行的集成测试,那就太好了。当然,你会想要标记这样慢的测试,这样它们就不会通过警卫和默认的 rake 任务运行。