2017-02-18 3 views
1

Voici le code source https://github.com/tenzan/eshoprésultats Rspec sont différents lors de l'exécution d'une et toutes les spécifications

Quand je lance une spécification spécifique rspec spec/features/application_controller_spec.rb, le test passe.

Mais quand je lance tout en exécutant rspec, il me donne l'erreur pour la spécification ci-dessus:

Failures: 

    1) Admin::ApplicationController GET #index returns http success 
    Failure/Error: expect(response).to have_http_status(:success) 
     expected the response to have a success status code (2xx) but it was 302 
    # ./spec/controllers/admin/application_controller_spec.rb:8:in `block (3 levels) in <top (required)>' 

Finished in 0.61968 seconds (files took 1.53 seconds to load) 
12 examples, 1 failure 

Failed examples: 

rspec ./spec/controllers/admin/application_controller_spec.rb:6 # Admin::ApplicationController GET #index returns http success 

Toutes les idées pourquoi cela se passe?

+0

probablement quelque chose fuit entre les tests. – Anthony

+0

Qui effacez-vous la base de données après avoir exécuté un test? – spickermann

Répondre

2

Le fichier que vous exécutez seul est pas celui qui échoue lorsque vous exécutez toute la suite ;-)

rspec spec/features/application_controller_spec.rb -> est tout à fait bien.

rspec spec/controllers/admin/application_controller_spec.rb:6 -> échoue dans tous les cas, car il n'y a pas d'utilisateur authentifié.

Et quelques conseils: vous pouvez utiliser --require rails_helper au lieu de --require spec_helper dans le fichier .rspec, alors vous n'aurez pas besoin de l'exiger dans chaque fichier de test. Et un raccourci: il est possible d'utiliser describe simple au lieu de RSpec.describe.

+0

Merci beaucoup. Il semble au lieu de traiter 'spec/controllers/admin/application_controller_spec.rb', j'ai créé par erreur' spec/features/application_controller_spec.rb'. LOL. Merci beaucoup pour les 2 autres conseils. – Askar