0

rspec テストが失敗しましたが、開発中に自分でアクションを実行すると、ページが正しくレンダリングされます。

スニペットは次のとおりです。

describe "sign up process" do

let (:admin1) { FactoryGirl.create(:admin) }

describe "with valid information"

  before do 
    visit new_admin_registration_path
    fill_in "Email", with: admin1.email
    fill_in "Password", with: admin1.password
    fill_in "Password confirmation", with: admin1.password_confirmation
    click_button "Sign up"
  end

  it { should have_selector('div.alert') }
end

そのセレクターがまったく見つからないのですが、開発環境でソースを表示したところ存在することを確認しました。

私ができるようにしたいのは、レンダリングしているページを調べて、何が欠けているかを確認することです。それを行う方法はありますか?

4

2 に答える 2

5

Capybara にはsave_and_open_page、ページの現在の状態で新しいブラウザー ウィンドウを開くメソッドがあります ( launchygem が必要です)。

例えば:

  before do 
    ...
    click_button "Sign up"
    save_and_open_page
  end
于 2012-07-24T21:27:29.970 に答える
4

これは、デバッガーを使用するか、仕様で pry のような別のものを使用するのと同じくらい簡単です。

私は個人的にこじ開けることを好みます。なぜなら、デバッガーのインストールは、Ruby 1.9 で試すたびに面倒だったからです...

require "pry"pry を使用すると、spec_helper.rbに a を追加してbinding.pryから、問題が発生する前に a 行を記述します。次に、irb セッションをテストにアタッチします。

于 2012-07-24T21:28:59.060 に答える