2012-02-20 7 views
1

私は最近XHR(Ajax)要求に私のアプリケーションで持っているいくつかの標準要求の変換を開始しました。私はこれを反映する私のRSpecのテストを更新中だが、このエラーメッセージに遭遇しています:期待される応答は<:redirect>でしたが、<401>

Expected response to be a <:redirect>, but was <401> 

私のスペックは次のようになりた:

describe "#index" do 
    subject { xhr :get, :index, params } 
    it { should redirect_to new_customer_session_path } 
end 

test.logファイルのエントリは次のようになります。

(0.2ms) BEGIN 
Processing by SocialNetworks::FacebookCommentsController#index as JS 
Parameters: {"id"=>"84", "facebook_post_id"=>"17"} 
    Completed 401 Unauthorized in 21ms 
    Rendered text template (0.0ms) 
(0.2ms) ROLLBACK 

これらは、サインインされていない(権限のない)ユーザーのコンテキスト内にあります。私はアサーションを変更する場合:

it { response.status.should == 401 } 

私はこのエラーを取得する:

Failure/Error: it { response.status.should == 401 } 
    expected: 401 
     got: 200 (using ==) 

とそれぞれ、役に立たない、ログエントリを...

(0.1ms) BEGIN 
(0.0ms) BEGIN 
(0.1ms) ROLLBACK 
(0.1ms) ROLLBACK 

私がいることを主張したいと思います権限のない状態が与えられたときには、権限のない状態が与えられる。誰も助けることができますか?

+0

私は1つの実行からステータスコードが401で、次回の実行が200であることを驚いている - あなたは他に何も変化しないことを確認していますか?これらのケースのサーバー応答を表示するために、どのようなログが利用できますか? – sarnold

+0

私の質問が、ログの役に立たない内容を含むように更新されました。私はステータスコードの変更に困惑していました。私は200になると主張することができますが、私は本当に401を捕まえたいと思っていました。実際にはUnauthorizedと応答することになっているからです。 – Gav

答えて

1

Twitterの友人(@JonRowe)からの応答が得られた:

再@gavinlaking:スタックオーバーフローを、例えば対象への呼び出しを含むように第二の試験を変更してみてください。

it { subject; response.status.should == 401 } 
+0

タイムアウトが許せば、これを受け入れることを忘れないでください... – sarnold

関連する問題