2012-02-20 2 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

Я удивлен, что код состояния с одного прогона - 401, а следующий пробег - 200 - вы уверены, что ничего не изменилось? Какие протоколы доступны для отображения ответов сервера для этих случаев? – sarnold

+0

Я обновил свой вопрос, чтобы включить бесполезный контент моего журнала. Меня озадачило изменение кода состояния. Я могу утверждать, что я получаю 200, но я действительно хотел захватить 401; поскольку на самом деле предполагается, что он должен ответить неавторизованным. – Gav

ответ

1

Ответ от друга (@JonRowe) на Twitter дали:

@gavinlaking Re: переполнение стека, попробуйте изменить второй тест, чтобы включить вызов подвергнет например.

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

Не забудьте отметить это, принятое один раз, когда тайм-ауты позволяют ... – sarnold

Смежные вопросы