-1

これが私のテストです:

require "rspec"

describe HomeController do
  render_views

  it "should renders the home" do
    get :home
    response.should render_template("home")
    find('H1').should have_content("Simulate Circuits Online")

  end

end

しかし、私は得る:

1) HomeController should renders the home
     Failure/Error: find('H1').should have_content("Simulate Circuits Online")
     Capybara::ElementNotFound:
       Unable to find css "H1"
     # ./spec/controllers/home_controller_spec.rb:9:in `block (2 levels) in <top (required)>'
     # (eval):6:in `block in fork'

タグ、ID、または CSS を見つける方法は??

4

1 に答える 1

1

get、などのリクエストメソッドから取得した応答でカピバラマッチャーを使用することはできません。カピバラマッチャーの場合は、のようpostにを使用する必要があります。visitvisit 'home'

詳細については、この投稿を参照してください。特にこの引用:

受け入れテストフレームワークであるCapybaraは、要求オブジェクトや応答オブジェクトなどの低レベルの詳細を公開しません。Capybaraを使用してWebページにアクセスするには、開発者は(getではなく)visitメソッドを使用する必要があります。アクセスされたページ本文を読み取るには、開発者は応答を操作する代わりにページを使用する必要があります。

この投稿も参照してください:Capybaraで複数のページのページ応答を確認してください

HTML文字列応答の構造をテストする場合は、rspec-html-matchersを検討してください。

于 2013-01-25T09:42:16.690 に答える