首页 > 解决方案 > 如何在 img 标签上的 src 属性上使用 web_mock 存根 headless_chrome 申请

问题描述

我正在尝试使用 Webmock 来存根无头 chrome 申请。我只是想测试以下内容:

给定一个选择和一个轮播标签(轮播是使用 Swiper 实现的),如果我更改选择标签,则轮播的当前显示图像必须相应更改。为此,我正在使用 VueJS。jQuery 中的一个例子是:

$(document).on('load', function() {
  $('.current-carousel-image').src = "https://something.com/some-image"
})

如何从 img 标签中的 src 属性存根这些请求?

我正在使用 Webmock,所以基本上我尝试了这个:

test 'test something' do
  stub_request(:any, /host.com.br/)
  visit products_path(product)

  [...]

  find('select[data-grass="material-filter"]').find(:xpath, 'option[2]').select_option

  [...]
end

作为host.com.br提供我需要的图像的服务。

当我尝试使用Net::HTTP方法时,这似乎有效,但是,在我的系统测试中,申请不断返回 400 状态(这是预期的,因为我正在使用 FactoryBot 生成我在被测试页面中使用的数据,但是提供我使用的图像的服务已准备好用于我的生产数据库中的实际模型)

标签: ruby-on-railscapybarawebmocksystem-testing

解决方案


你不能使用 WebMock 存根那些。WebMock 只能存根您的应用程序发出的请求——它不能对浏览器发出的请求做任何事情。

要存根/模拟浏览器发出的请求,您需要使用可编程代理。您可能想看的一个是PuffingBilly


推荐阅读