0

このテストに合格しない理由を突き止めるために、この 1 時間ほどを費やしました。

Rails 4.0 で Capybara 2.1.0 と rspec 2.14.1 を使用しています。

これが私のテストです:

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) 統​​計インデックス ページには、テキスト「Stats」を含む css「h1」が必要です 失敗/エラー: it { should have_selector 'h1', text: 'Stats' } " しかし一致するものはありませんでした # ./spec/features/stats_spec.rb:7:in `ブロック (3 レベル) in '

私は困惑しています。どんな助けでも大歓迎です。

ちなみに、私のインデックス ページはエラーなしで正しく表示されます。

4

1 に答える 1

0

ページにアクセスすると機能するが、テストスクリプトを実行すると機能しない場合は、セッションまたは認証の問題が確実にあります。インデックス ページは、認証または承認ロジックによって保護されていますか?

解決策を提供することはできませんが、ガイドラインを提供することはできます。まだ行っていない場合ppは、ページのレンダリングをコンソールに出力するために使用してください。

たとえば、controllersディレクトリでテストする場合は、pp response.body. viewsまたは、ディレクトリでテストしている場合は、 のrender後にpp rendered.

次に、コンソールの出力から、何が追加されたかに関する特定のロジックに従って、確かに手がかりが得られます。

于 2013-07-16T00:40:56.050 に答える