【发布时间】:2018-07-03 20:03:59
【问题描述】:
我在 Rails 5.1 上的 ruby 视图中有一个用户表,它是这样的:
<table id="users" class="table table-bordered">
<thead>
<tr>
<th></th>
<th>ID</th>
<th>Nombre</th>
<th>Apellidos</th>
<th>Correo electrónico</th>
<th colspan="2">Registro</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td>i</td>
<td><%= user.id %></td>
<td><%= user.name %></td>
<td><%= user.last_name %></td>
<td><%= user.email %></td>
<td><%= user.created_at.hour %>:<%= user.created_at.min%> hrs.</td>
<td><%= user.created_at.to_date %></td>
</tr>
<% end %>
</tbody>
</table>
情况是我正在使用 capybara、rspec 和 factorybot 进行测试,我需要测试我正在创建 10 个用户并将其添加到表中,之后我会期望我的测试有一个 xpath下一个:
scenario 'admin view users' do
visit admin_users_path
users = create_list(:user, 10)
expect(page).to have_xpath('//*[@id="users"]/tbody/tr/td[5]', text: "#{users.first.email}" )
end
问题是我得到了 expect 的错误,我的假设是 xpath 是正确的,但是有些东西无法写入或测试表内的用户。
我的问题是:
当我创建 10 个用户(例如)时如何运行测试,然后将其添加到表中以供后记期望 xpath 正确?
【问题讨论】:
标签: ruby-on-rails rspec ruby-on-rails-5 capybara factory-bot