Почему этот тест Rails Rspec не работает? - PullRequest
1 голос
/ 28 февраля 2011

Я создаю все маршруты моей программы вручную и, конечно же, делаю это с помощью тестов rspec.Как правило, мои маршруты и тесты работают нормально, но у меня проблема с тестом для моего контроллера персонажей.Маршрут:

  scope :path => '/characters', :controller => :characters do
    get '/' => :show, :as => 'user_character'
  end  

Символы / работают нормально при тестировании в моем браузере.Все вроде нормально.Но тест:

require 'spec_helper'
require 'devise/test_helpers'

describe CharactersController do
    login_user

    describe "when it GETS 'show'" do
        it "should render the template and be successful" do
            get :show
            response.should render_template(:show)
            response.should be_success
        end
    end

end

Сбой с ошибкой:

  1) CharactersController when it GETS 'show' should render the template and be successful
     Failure/Error: get :show
     ActionController::RoutingError:
       No route matches {:controller=>"characters", :action=>"show"}
     # ./spec/controllers/characters_controller_spec.rb:9

Все мои контроллеры имеют похожие тесты, которые работают нормально.Почему это не работает?

ВАЖНОЕ РЕДАКТИРОВАНИЕ:

Только что увидел, что если я выключу Spork, тест пройден!Почему это происходит ?Нужно ли перезапускать Spork при каждом добавлении нового теста?

1 Ответ

3 голосов
/ 28 февраля 2011

Вам нужно перезапустить spork при смене маршрутов.

Или поместить это в свой spec_helper.rb:

Spork.each_run do
  ApplicationName::Application.reload_routes!
end

См. Также «Итерации быстрого теста для Rails 3 с Spork».и охранник "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...