окружающей среды: Rails 3.2.12, RSpec 2,12«Нет маршрут не соответствует» ошибке для маршрута без контроллера в рельсах/RSpec
Я пытаюсь самонастройки приложения с очень простым тестом маршрутизации. Тест не работает, и я не вижу, что может быть неправильным.
Вот тест, который не удается:
# spec/routing/meow_route_spec.rb
require 'spec_helper'
describe "meow routes" do
it "routes post /meows to meows#create" do
expect(:post => "/meows").to route_to(
:controller => "meows",
:action => "create",
)
end
end
И мой маршрут:
# config/routes.rb
Meowserver::Application.routes.draw do
resources :meows
end
rake routes
говорит мне:
polk:meowserver dpassage$ rake routes
meows GET /meows(.:format) meows#index
POST /meows(.:format) meows#create
new_meow GET /meows/new(.:format) meows#new
edit_meow GET /meows/:id/edit(.:format) meows#edit
meow GET /meows/:id(.:format) meows#show
PUT /meows/:id(.:format) meows#update
DELETE /meows/:id(.:format) meows#destroy
Но когда я бегу RSpec, я получаю эту ошибку:
1) meow routes routes post /meows to meows#create
Failure/Error: expect(:post => "/meows").to route_to(
No route matches "/meows"
# ./spec/routing/meow_route_spec.rb:4:in `block (2 levels) in <top (required)>'
Что здесь происходит? На самом деле это единственные файлы, которые были последними в моем приложении: даже контроллеры или модели просто пытаются построить его снаружи.
Можете ли вы попробовать хотя бы добавить 'meows_controller.rb' в' app/controllers/'с помощью метода' create'? Я только что протестировал удаление контроллера, для которого я объявил маршруты, и он действительно бросает ошибку маршрутизации, когда вы пытаетесь достичь этого маршрута. Ошибка, которую я получаю, является ошибкой 'uninitialized constant'. – Max
Вот такая ошибка, которую я бы ожидал получить! Получение ошибки «Нет соответствия маршрутов» просто отправляет вас по неправильному пути. – dpassage