Rails/Rspec httpの基本認証でテストを通過させる
2023-10-13 10:34:57
質問
アプリケーションコントローラファイル(application_controller.rb)でのhttp基本認証は以下の通りです。
before_filter :authenticate
protected
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == "username" && password == "password"
end
end
と、ホームコントローラのindexアクションのデフォルトテスト(spec/controllers/home_controller_spec.rb)です。
require 'spec_helper'
describe HomeController do
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
認証方式が原因でテストが実行されません。私はそれらを実行するために "before_filter :authenticate" をコメントすることができましたが、私はそれらがメソッドで動作するようにする方法があるかどうかを知りたいのです。
ありがとうございます。
どのように解決するのですか?
更新 (2013): Matt Connollyがリクエストやコントローラの仕様にも対応したGISTを提供しています。 http://gist.github.com/4158961
実行するテストが多く、毎回インクルードしたくない場合(DRYerなコード)の別の方法です。
spec/support/auth_helper.rb ファイルを作成します。
module AuthHelper
def http_login
user = 'username'
pw = 'password'
request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials(user,pw)
end
end
テスト仕様ファイルの中で
describe HomeController do
render_views
# login to http basic auth
include AuthHelper
before(:each) do
http_login
end
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
end
クレジット ここで
関連
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] Railsでグループとカウント
-
[解決済み] rails/rubyでgroup_byを使用する。
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] テストの失敗に関連する完全なトレースを rspec-2 に与えるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] バリデーションなしで属性を更新する方法
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] railsでcheck_boxをcheckedにする方法は?
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController