2017-02-18 31 views
1

Вот исходный код https://github.com/tenzan/eshopрезультатов Rspec отличается при выполнении одной и все функции

Когда я запускаю определенную спецификацию по rspec spec/features/application_controller_spec.rb, тест пройден.

Но когда я бегу все, выполнив rspec, это дает мне ошибку для спецификации выше:

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 

Любые идеи, почему это происходит?

+0

скорее всего что-то протекает между тестами. – Anthony

+0

Кто вы очищаете базу данных после запуска теста? – spickermann

ответ

2

файл запуск в одиночку не один, который терпит неудачу при запуске всего набора ;-)

rspec spec/features/application_controller_spec.rb -> это совершенно нормально.

rspec spec/controllers/admin/application_controller_spec.rb:6 -> Сбой в любом случае, так как нет аутентифицированного пользователя.

И несколько советов: вы можете использовать --require rails_helper вместо --require spec_helper в файле .rspec, тогда вам не нужно будет требовать его в каждом тестовом файле. И ярлык: можно использовать простой describe вместо RSpec.describe.

+0

Большое спасибо. Кажется, вместо того, чтобы иметь дело с 'spec/controllers/admin/application_controller_spec.rb', я ошибочно создал' spec/features/application_controller_spec.rb'. ЛОЛ. Большое спасибо за остальные 2 подсказки. – Askar