2015-09-20 35 views
0

我有HTML看起来像:跨行Rspec的/水豚匹配数据和列

<div class="row"> 
    <div class="column"> 
    Customer Alice 
    </div> 
    <div class="column"> 
    Status: enrolled/signed 
    </div> 
</div> 
<div class="row"> 
    <div class="column"> 
    Customer Boris 
    </div> 
    <div class="column"> 
    Status: signed 
    </div> 
</div> 

有跨越的行和列匹配的一些挑战。

当使用Rspec的/水豚,我更新的详细信息Boris让他的状态变得enrolled/signed

<div class="row"> 
    <div class="column"> 
    Customer Alice 
    </div> 
    <div class="column"> 
    Status: enrolled/signed 
    </div> 
</div> 
<div class="row"> 
    <div class="column"> 
    Customer Boris 
    </div> 
    <div class="column"> 
    Status: enrolled/signed 
    </div> 
</div> 

这是很容易在视觉上屏幕上的确认,由人。

由于我使用水豚和Poltergeist :),我如何轻松地匹配以确认鲍里斯的状态预计为enrolled/signed的规格?

+0

您尝试过什么吗? –

+0

我开始沿着嵌入生成的数据到HTML div的路线(例如,Boris的列“divrolled/signed”有一个数据或id属性,我可以选择然后匹配这似乎涉及所以想知道如果有更习惯的方法(尤其是我在Rspec/Capybara也是新手) –

+0

您是否尝试过编写测试?Stackoverflow不是为您编写代码,这可以帮助启动http:// ruby​​-journal。 com/how-to-write-rails-view-test-with-rspec/ –

回答

1

喜欢的东西

row = find('.row', text: 'Customer Boris') 
expect(row).to have_text('enrolled') 

会做你想要的 - 如果你想要做这一切在一个你可以通过文本匹配一个正则表达式,从而

预期(页)。为了have_selector( '.row',文字:/ Customer Boris。*已注册/)

或类似的东西

+0

谢谢@ tom-walpole :)我最终用正则表达式的方式去做,因为我的实际HTML嵌套更多(React),而且更模糊。仍然让我的头在Rspec的方法。 –