代码之家  ›  专栏  ›  技术社区  ›  Jason Swett

切换到远程:真的打破了VCR

  •  0
  • Jason Swett  · 技术社区  · 5 年前

    我有一个看起来像这样的测试。

    RSpec.describe 'Modify visit summary letters', type: :system do
      scenario 'with one correspondence relationship' do
        VCR.use_cassette 'correspondence/faxes/valid_number' do
          # test steps omitted for brevity
        end
      end
    end
    

    这个测试通常通过得很好。但当我改变某种形式时 remote: false remote: true (需要明确的是,我正在更改此项,而不是其他任何内容)测试停止工作。

    当我在考试结束后进行测试时 远程:true 我得到的改变:

     VCR::Errors::UnhandledHTTPRequestError:                                                                                                                                            
                                                                                                                                                                                             
                                                                                                                                                                                             
            ================================================================================                                                                                                 
            An HTTP request has been made that VCR does not know how to handle:                                                                                                              
              POST https://rest.interfax.net/outbound/faxes?faxNumber=%2B15555555555                                                                                                         
                                                                                                                                                                                             
            There is currently no cassette in use.
    

    它说没有正在使用的磁带,尽管很明显,有。

    为什么会发生这种情况,我能做些什么来解决它?

    编辑 :这是我的VCR配置。

    VCR.configure do |c|
      c.cassette_library_dir = 'spec/cassettes'
      c.hook_into :webmock
      c.ignore_localhost = true
      c.ignore_hosts 'chromedriver.storage.googleapis.com'
    
      c.default_cassette_options = {
        match_requests_on: [
          :method,
          VCR.request_matchers.uri_without_param('faxNumber')
        ]
      }
    end
    
    0 回复  |  直到 5 年前