Метод get из ActionController :: TestCase игнорирует маршруты. Rb? - PullRequest
0 голосов
/ 05 сентября 2011

Я сталкиваюсь с проблемой, которая, кажется, указывает на то, что метод ActionController :: TestCase.get () игнорирует то, что у меня есть в route.rb.

Версия Rails - 3.0.10.

У меня есть следующий тест RSpec2 для моего действия XmlRpcController # index:

it "should get nothing in response to GET request" do
  get :index
  response.response_code.should == 400 #bad_request
end

И единственная строка, связанная с этим маршрутом в rout.rb:

post 'rpc', :to => "xml_rpc#index"

'rake route'также показывает только этот определенный маршрут.

В результате, когда я запускаю этот тест, действие фактически выполняется!Я оцениваю это, помещая в него простые путы), а также журнал содержит:

Обработка XmlRpcController # index как HTML

Также, если я перехожу к localhost3000 / rpc 'в браузере - он говорит, что маршрут не найден: как положено.Но у тестов другое поведение, и это меня озадачивает ...

Может кто-нибудь намекнуть, почему это происходит?Я только начинаю узнавать о RoR :) Раньше мне казалось, что эти методы TestCase 'get / post' уважают route.rb ...

Я что-то упускаю из виду?:)

1 Ответ

0 голосов
/ 10 сентября 2011

Похоже, что метод get: index действительно игнорирует route.rb.

Для меня реальным решением было использовать be_routable rspec matcher, написанный для этой конкретной цели:

  describe "GET 'contact'" do
    it "should be successful" do
      { :get => '/rpc' }.should_not be_routable
    end
  end

Понял это благодаря одному пользователю из Ruby-Forum. Подробнее здесь .

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