0

网络上的许多东西似乎表明 VCR 可以与 Capybara 一起使用。

我有三个问题。

  1. 这对我来说没有多大意义,因为测试驱动程序和应用程序代码不共享内存。
  2. 我没有找到关于如何设置它的完整食谱。
  3. 我正在寻找人们如何设置它的点点滴滴,但它超出了 rails 5.1 的上下文,它在幕后进行了 capybara 设置。

如何配置 Rails 5.1 应用程序、Capybara 和 VCR 以协同工作进行系统测试?

(我的无头浏览器是 phantomjs,由 poltergeist 驱动。但我不需要拦截来自浏览器的请求,只需要拦截服务器端请求。如果我需要从浏览器拦截,我可能会使用完整的 http 代理服务器,比如 puffing -比利。)

4

1 回答 1

0

我假设您的意思是 Rails 5.1,因为 Rails 5 没有系统测试。

  1. Capybara 为测试而运行的应用程序副本在单独的线程中运行,而不是在单独的进程中。这意味着它们确实可以访问相同的内存和加载的类

  2. 除了 README 已经提供的内容之外,配置 WebMock 或 VCR 没有什么特别要求

  3. Capybara 的设置以及 Rails 如何处理它与 WebMock 或 VCR 的配置无关。此外,即使在使用 Rails 5.1 系统测试时,所有正常的 Capybara 配置选项仍然可用。

综上所述,这里有几件事需要注意。首先,WebMock/VCR 只能处理您的应用程序发出的请求(而不是您声明不需要的浏览器),并且在进行端到端时,通常最好使用伪造的服务(如果可能)而不是 WebMock/VCR系统测试,因为对被测代码的干扰较少。

如果这不能回答您的问题,请发布一个问题,其中包含您遇到的特定问题、导致问题的代码以及您遇到的错误。

于 2017-05-25T22:09:57.973 回答