Rspec/Capybara 跨行和列匹配数据
Rspec/Capybara matching data across rows and columns
我 HTML 看起来像:
<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/Capybara 时,我会更新 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>
这很容易由人在屏幕上直观地确认。
由于我使用的是 Capybara 和 Poltergeist :),我如何轻松匹配以确认 Boris 的状态在规范中预计为 enrolled / signed
?
类似
row = find('.row', text: 'Customer Boris')
expect(row).to have_text('enrolled')
会做你想做的事——如果你想一次做所有事情,你可以为文本匹配传递一个正则表达式,这样
expect(page).to have_selector('.row', text: /Customer Boris.*enrolled/)
或类似的东西
我 HTML 看起来像:
<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/Capybara 时,我会更新 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>
这很容易由人在屏幕上直观地确认。
由于我使用的是 Capybara 和 Poltergeist :),我如何轻松匹配以确认 Boris 的状态在规范中预计为 enrolled / signed
?
类似
row = find('.row', text: 'Customer Boris')
expect(row).to have_text('enrolled')
会做你想做的事——如果你想一次做所有事情,你可以为文本匹配传递一个正则表达式,这样
expect(page).to have_selector('.row', text: /Customer Boris.*enrolled/)
或类似的东西