0

Rails 3.0.1、RSpec-Rails 2.0.1、および Webrat 0.7.1 を使用しています。次のテストがあります。

describe PagesController do
  describe "GET 'main'" do
    it "should have the right title" do
      get 'main'
      response.should have_selector("title", :content => "My title")
    end
  end
end

pages#main の HTML がチェックアウトされます。My Title が含まれています。rspec を実行すると、このテストでエラーが発生し、次の行でタグが見つかるはずであると表示されます。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

これは pages#main に保存されているファイルではないので、何らかの理由で rspec が間違ったページをロードしていると思います。これを解決するにはどうすればよいですか?または、一般的な解決策に失敗した場合、どのページをロードしようとしているのかをrspecに教えてもらい、なぜこの他のページに行くのかを理解できるようにするにはどうすればよいですか? ありがとう。

4

2 に答える 2

1

ビューをレンダリングするように RSpec に指示する必要があります。

describe PagesController do
  render_views # Add this line to tell RSpec to render the views
  describe "GET 'main'" do
  .
  .
end
于 2010-11-08T18:57:33.437 に答える
0

log/test.log を投稿するより良い方法は次のとおりです。

  Processing by PagesController#main as HTML
Rendered pages/main.html.erb within layouts/application (0.4ms)
Completed 200 OK in 5ms (Views: 5.1ms | ActiveRecord: 0.0ms)
  Processing by PagesController#main as HTML
Completed 200 OK in 1ms (Views: 0.9ms | ActiveRecord: 0.0ms)

最初の呼び出しでページがレンダリングされるように見えます.2番目の呼び出しは何ですか?

于 2010-11-01T03:43:05.240 に答える