私はRubyonRailsチュートリアルの第9章まで作成し、ユーザーが最初にサインアップしたときにユーザーをロックする独自の機能を追加しました。これにより、管理者は新しいユーザーの前にIDを承認(「ロック解除」)する必要があります。ユーザーはサイトにアクセスできます。Userオブジェクトの:admin属性と同じように機能する:lockedboolean属性を追加しました。私は今それをすべて機能させていますが、それの簡単なテストを書くのに苦労しています。次のテストをuser_pages_spec.rbの階層「pagination」のすぐ下に追加しました-「管理者ユーザーとして」:
describe "as an admin user to unlock new users" do
let(:admin) { FactoryGirl.create(:admin) }
let(:locked_user) { FactoryGirl.create(:locked) }
before do
sign_in admin
visit users_path
end
it { should have_link('unlock', href: user_path(locked_user)) }
it { should_not have_link('unlock', href: user_path(admin)) }
end
「ロックされた」ユーザーの作成をサポートするために、これをfactories.rbに追加しました。
factory :locked do
locked true
end
Firefoxを介して手動でロック解除リンクが表示されることを確認できますが、それでも次のエラーが発生します。
1) User pages index pagination as an admin user to unlock new users
Failure/Error: it { should have_link('unlock', href: user_path(locked_user)) }
expected link "unlock" to return something
# ./spec/requests/user_pages_spec.rb:64:in `block (5 levels) in <top (required)>'
私はa)なぜこれが失敗するのか:)だけでなく、b)このような問題のデバッグに取り掛かる方法を知りたいと思っています。テストが実際に「見ている」ものをどのように見分けることができますか?別のstackoverflowユーザーが提案したように、別の問題でrails-pryを試しましたが、この場合、使用が制限されていることがわかりました。
任意のアイデアや提案をいただければ幸いです。前もって感謝します!
-マット