2016-02-11 3 views
0

Я делаю модульное приложение Sinatra и делаю тесты с rspec и Capybara. Проблема в том, что я всегда получаю ошибку «Не найден» 404 при попытке посетить страницу. Когда я использую команду «bundle exec rackup» и перехожу на тот же URL-адрес, но в браузере все в порядке. Вот мой спецификации:Посещение Capybara всегда дает мне ошибку 404

require "spec_helper" 
    require_relative '../../routes/user_routes' 

    set :environment, :test 


    RSpec.describe RubyPlay, type: :feature do 
     include Rack::Test::Methods 

     def app 
     RubyPlay # this defines the active application for this test 
     end 

     before { visit '/' } 
     it "should allow accessing the home page" do 
     p page.html # prints Not found 
     p page.status_code # 404 
     expect(page).to have_content 'Ruby Play' 
     end 
    end 

расслоение Exec RSpec:

RubyPlay should allow accessing the home page 
    Failure/Error: expect(page).to have_content 'Ruby Play' 
    expected to find text "Ruby Play" in "Not Found" 

Я никогда не делал тесты в Синатрой и понятия не имеют, что может быть не так ... :)

ответ

0

Я нашел решение - мне просто пришлось добавить:

Capybara.app = RubyPlay 

в файл spec_helper.rb! Теперь он может найти свои маршруты ...

+0

Да - без настройки приложения Capybara не знает, что загрузить/запустить рельсы, которые обрабатываются, когда вы включаете capybara/rails - но с Sinatra вам нужно сделать он вручную –

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