2017-04-13 5 views
0

私は統合テストを構築しています、と私はHTMLタグが値として特定の整数がありますが、私はこのエラーを取得することを保証する必要があります。統合テストでassert_selectを作成するには、cssクラスを選択しますか?

ReportsTest 
    test_report_shows_the_right_data_for_last_30_days    ERROR (0.94s) 
NoMethodError:   NoMethodError: undefined method `content_type' for nil:NilClass 
      test/integration/reports_test.rb:15:in `block in <class:ReportsTest>' 
      test/test_helper.rb:45:in `instance_eval' 
      test/test_helper.rb:45:in `block in test' 

これが私の見解です:

<div class="panel panel-default report-summary"> 
    <div class="panel-heading"> 
    <h3 class="panel-title">Resumen</h3> 
    </div> 
    <div class="panel-body"> 
    <div class="row"> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value resources-count"><%= @resources_count %></div> 
     <div class="summary-label">Recursos Publicados</div> 
     </div> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value"><%= @likes_count %></div> 
     <div class="summary-label">Likes</div> 
     </div> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value"><%= @searches_count %></div> 
     <div class="summary-label">Búsquedas</div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value"><%= @comments_count %></div> 
     <div class="summary-label">Comentarios</div> 
     </div> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value"><%= @views_count %></div> 
     <div class="summary-label">Vistas</div> 
     </div> 
     <div class="col-sm-4 summary-item"> 
     <div class="summary-value"><%= @users.count %></div> 
     <div class="summary-label">Colaboradores</div> 
     </div> 
    </div> 
    </div> 
</div> 

これは私のテストです:私のassert_selectが正しくCSSクラスのリソースカウントを持つHTMLタグを見つけていないように思え

require 'test_helper' 

class ReportsTest < ActionDispatch::IntegrationTest 
    test 'show report without time range', subdomain: :mainco do 
    sign_in users(:juan) 
    visit reports_path 
    assert_equal 2, page.all(".report-resources table tbody tr").count 
    end 

    test 'report shows the right data for last 30 days', subdomain: :mainco do 
    sign_in users(:juan) 
    visit reports_path 
    knowledge_bases(:sales).resources.create!(user: users(:juan), 
     title: "JavaScript", type: "Discussion", created_at: 31.days.ago) 

    assert_select ".resources-count" do |elements| 
     elements.each do |element| 
     assert_equal element, 1 
     end 
    end 
    end 

end 

読んでいただきありがとうございます。

答えて

1

次のようなものカピバラを使用して、あなたが行うことができます要素の内容を確認する必要がある場合:あなたは統合テストではなく、コントローラーのテストを作成しているので、

assert page.has_css('.resources-count', text: "something") 

assert_selectがここで仕事に行くのではありません。

関連する問題