网络上的许多内容似乎都表明VCR可以与Capybara一起使用。
我有三个问题。
如何配置Rails 5.1应用程序,Capybara和VCR一起进行系统测试?
(我的无头浏览器是phantomjs,由恶作剧者驱动。但是我不需要拦截来自浏览器的请求,只需要服务器端请求。如果我需要从浏览器拦截我可能会使用完整的http代理服务器,就像puffing-billy。)
答案 0 :(得分:0)
我假设您的意思是Rails 5.1,因为Rails 5没有系统测试。
用于测试的应用程序Capybara运行的副本在一个单独的线程中运行,而不是单独的进程。这意味着他们可以访问相同的内存和已加载的类
除了自己的README已经提供的内容之外,没有什么特别需要配置WebMock或VCR
Capybara的设置以及Rails如何处理它与WebMock或VCR的配置无关。此外,即使使用Rails 5.1系统测试,所有正常的Capybara配置选项仍然可用。
总而言之,这里有几点需要注意。首先,WebMock / VCR只能处理您的应用程序发出的请求(而不是来自您声明不需要的浏览器),并且在端到端时使用伪造服务(如果可能)而不是WebMock / VCR通常更好系统测试,因为对被测代码的干扰较少。
如果这不能解决您的问题,请针对您遇到的特定问题发布问题,导致问题的代码以及您收到的错误。