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

Cor*_*res 3 ruby integration-testing cucumber vcr

我目前正在使用RSpec2,Cucumber和VCR(通过WebMock),一切都运行良好.

通常使用VCR记录所有请求,然后根据录制的磁带重放.

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

  • 在Cucumber中,我设置了一个"实时"配置文件,可以运行任何带有标记的测试@live.对于这些测试 - 仅限这些测试 - 我想允许真正的Web请求.
  • 我想不时地对真正的api运行测试并忽略录音

Ali*_*irH 12

你可以用黄瓜BeforeAfter钩子做到这一点.只需使用以下内容禁用VCR:

Before('@live') do
  VCR.eject_cassette
  VCR.turn_off!
end
Run Code Online (Sandbox Code Playgroud)

这可能取决于您如何将VCR与黄瓜测试结合起来.