Ruby on rails 如何使用rspec测试正在显示的图像?
根据正在查看的页面,我想为我的徽标使用不同的图像;主页上的徽标更大。我喜欢使用请求规范来测试行为,因此我想做如下工作:Ruby on rails 如何使用rspec测试正在显示的图像?,ruby-on-rails,testing,rspec,Ruby On Rails,Testing,Rspec,根据正在查看的页面,我想为我的徽标使用不同的图像;主页上的徽标更大。我喜欢使用请求规范来测试行为,因此我想做如下工作: describe 'Visit "advertentie/1"' do it 'contains add details' do add = create(:add_with_photos) visit add_path add page.should have_selector( 'img[alt="logo-small
describe 'Visit "advertentie/1"' do
it 'contains add details' do
add = create(:add_with_photos)
visit add_path add
page.should have_selector( 'img[alt="logo-small"]' ) # CHECK IMAGE ALT
page.should have_content( add.name )
end
end
测试将重新运行一些haml生成的html:
<div class='logo-wrapper'>
<h1>
<a href="/"><img alt="Logo-big" src="/assets/logo-small.png" />
<br>
<span>UpMarket</span>
</a>
</h1>
</div>
但是,此选择器不起作用。这可能吗?你是如何尝试使用have-css方法的
have_css("img[src*='w3schools']")
(选择每个
相关的HTML是什么样子的?对于100%的TDD来说,HTML当然不应该看起来像任何东西,但我会用一种糟糕的方式把它添加到我的问题中;)TDD确实意味着你没有输出。显然有一些HTML是由选择器检查的(或者应该有)。这就是我想要的,绿色规格。一定会喜欢的。谢谢,src似乎是一个更可靠的属性来测试,因为我更喜欢alts更具描述性。在更多的情况下也可以使用这个,使用*
,从来没有真正使用过。这对我来说很有用,但是*
做什么呢?我所能找到的只是它被用作“splat”,但这似乎有所不同。谢谢。*=
属性选择器表示“属性包含子字符串”。有关可能的选择器的概述,请参阅。