Rails测试:在视图上测试image_tag

时间:2015-04-09 12:53:02

标签: ruby-on-rails unit-testing view rspec

我正在编写视图测试,我想测试图像:

<%= image_tag "icon.png", class: "img-responsive" %>

所以我做了这个测试,但是没有工作:

it 'app logo' do
  render
  assert_select 'img.img-responsive[src=?]', asset_path('icon.png')
end

如果我使用以下内容,它会起作用,但我认为这不是正确的方法:

it 'app logo' do
  render
  assert_select 'img.img-responsive[src=?]', '/assets/icon.png'
end

可能是什么问题? 这是正确的用rspec进行测试的原因吗?

2 个答案:

答案 0 :(得分:0)

我不确定问题中的方法是正确还是错误,但您可以尝试以下方法:

expect(response.body).to include('icon.png')
expect(response.body).to have_css(".img-responsive")

答案 1 :(得分:0)

尝试使用capybara:

page.should have_selector(:xpath, XPATH_OF_THE_IMAGE_ELEMENT)