Question

J'ai récemment commencé à convertir certaines des requêtes standard que j'ai dans mon application en requêtes XHR (Ajax).Je suis en train de mettre à jour mes tests RSpec pour refléter cela, mais je rencontre ce message d'erreur:

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

Ma spécification ressemble à:

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

L'entrée du fichier test.log ressemble à ceci:

(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

Ceux-ci sont dans le contexte d'un utilisateur qui n'est pas connecté (non autorisé).Lorsque je change l'assertion en:

it { response.status.should == 401 }

J'obtiens cette erreur:

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

Et des entrées de journal respectives, inutiles ...

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

Je voudrais affirmer qu'un statut non autorisé est donné lorsqu'un statut non autorisé a été donné.Quelqu'un peut-il aider?

Était-ce utile?

La solution

Une réponse d'un ami (@JonRowe) sur Twitter a donné:

@gavinlaking Re: stack overflow, essayez de changer le deuxième test pour inclure un appel au sujet par exemple.

it { subject; response.status.should == 401 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top