0

我花了最后一个小时试图弄清楚为什么这个测试不会通过。

我正在使用 Capybara 2.1.0 和 rspec 2.14.1 在 Rails 4.0 中工作

这是我的测试:

require 'spec_helper'

describe "Stats" do
subject { page }
describe "Index Page" do
    before { visit stats_path }
    it { should have_selector 'h1', text: 'Stats' }
end
end

还有我的 index.html.erb 文件:

<h1>Stats</h1>
<table>
  <thead>
<tr>
  <th>Attendance</th>
  <th>Salvations</th>
  <th>Visitors</th>
  <th>Offering</th>
  <th>Service Date</th>
  <th>Time</th>
  <th>Campus</th>
  <th></th>
  <th></th>
  <th></th>
</tr>
  </thead>

  <tbody>
    <% @stats.each do |stat| %>
      <tr>
     <td><%= stat.attendance %></td>
    <td><%= stat.salvations %></td>
    <td><%= stat.visitors %></td>
    <td><%= stat.offering %></td>
    <td><%= stat.date %></td>
    <td><%= stat.time %></td>
    <td><%= stat.campus.name %></td>
    <td><%= link_to 'Show', stat %></td>
    <td><%= link_to 'Edit', edit_stat_path(stat) %></td>
    <td><%= link_to 'Destroy', stat, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>
 </tbody>
</table>

<br>

<%= link_to 'New Stat', new_stat_path %>

我得到的错误是:

1) 统计索引页面应该有 css "h1" 和文本 "Stats" " 但没有匹配项 # ./spec/features/stats_spec.rb:7:in `block (3 levels) in '

我难住了。任何帮助,将不胜感激。

顺便说一句,我的索引页正确呈现,没有任何错误。

4

1 回答 1

0

如果它在您访问页面时有效,但在您运行测试脚本时无效,那么肯定存在会话或身份验证问题。您的索引页是否受到任何身份验证或授权逻辑的保护?

我不能给你一个解决方案,但我可以试着给你一个指导方针,如果你还没有这样做,用它pp来输出到控制台页面的渲染。

例如,如果您在controllers目录中进行测试,请使用pp response.body. 或者,如果您在views目录中进行测试,请使用render后跟pp rendered.

然后从控制台的输出中,您肯定会根据您的特定逻辑获得关于附加内容的线索。

于 2013-07-16T00:40:56.050 回答