私はMVP(最低限の実行可能な製品)を取り組んでいます。管理ページを保護する簡単な方法を提供するために、私はAdminControllerにhttp_basic_authenticate_withを追加しました。Skip Rails http_basic_authenticate_with RSpecテスト
問題は、私は私のAdminControllerをテストしたいとき、私がログインしていないため(401)、「不正」を得ることである
このシナリオでは、認証をテストするためには無関係だ - 。それはただ一時的、およびようです私はすぐ次のスプリントに行きますが、それは削除される予定です - RSpec内でスキップしようとしています。
問題多くの方法で試してみましたが、問題はありません。
たとえば、認証を回避するために、http_basic_authenticate_withを変更しようとしました。このように:
require 'spec_helper'
module ActionController
module HttpAuthentication
module Basic
def http_basic_authenticate_with(*args)
end
end
end
end
describe Admin::SubscribersController do
describe "GET 'index'" do
it "should be OK" do
get 'index'
response.should be_successful
end
end
end
しかし、私が実行すると、その単純なテストでは "false"が返されます。
Btwこのテストを簡略化するために、私はAdminControllerに空のインデックスアクションがあり、空のビュー(index.html.erb)があります。
おかげで、私の場合には(私はそれだけで一時的だし、おそらく来週言ったように、既に削除される予定です)、私はそれを避けたいです。出来ますか?どのようにそれをスキップするための任意の提案? –
だから、テストは一切必要ありませんか?しかし、あなたはそれを避けるためにいくつかのメタプログラミングを行うことができます。これは、私が見つけたリンクの中で最速のオプションです。... –
私はすみません、私は少し間違って表現したと思います。上記の例はあくまでも例です。私の実際のAdminControllerはそれだけではありませんが、HTTP認証は一時的なものです。パスワードを変更すると、テストを変更する必要があるため、テスト前に認証する必要はありませんでした。思考をスキップすると、より簡単でより良いアプローチになります。私がどのように飛ばすことができるかの例があるなら(私が与えた例が私が持っていた唯一のアイデアでした)、私に教えてください。 –