RailsアプリケーションのCapybaraテストスイートでrspecモックを使用してログインしたユーザー(Devise/Warden)をスタブアウトしたいとします。これは時間を節約し、テストスイートを定期的に実行できることを意味します。今私は工夫を使用していることを、私はもはやUserSessionオブジェクトへのアクセス権を持っているCapybaraテストでRspecを使用してWarden/Deviseをスタブする方法
def login(user)
user_session = mock_model(UserSession, {:user => user})
UserSession.stub(:find).and_return(user_session)
end
:
は、以前私はこのようないくつかのコードで私のセッションモデルをスタブすることにより、この使用authlogicを行うことができませんでした。私はコードをテストするためにcapybaraを使用しているので、私はsign_in
テストヘルパーで構築されたdeviseを使うためにリクエストオブジェクトに直接アクセスすることはできません。
私の質問は、ログインしたユーザーが最初にサインアップパスに行き、フォームに記入して送信し、待機する必要なく、capybara、devise、およびspec mockでログインしたユーザーをシミュレートするにはどうすればいいですか?応答を求めて、目的のページに移動しますか?
だけではなく、ケース[login.rb](中https://github.com/gitlabhq/gitlabhq /blob/master/spec/support/login.rb)と[sample_use.rb](https://github.com/gitlabhq/gitlabhq/blob/master/spec/requests/dashboard_issues_spec.rb) – clyfe
応答をありがとう、私はすでにそれを避けようとしているようなものを持っています。あなたのコメントは確かにそうでないかもしれないそれらの将来の訪問者のために確かに役立つが。 – Schneems