Как написать rspec получить операторы для настроенных маршрутов? - PullRequest
3 голосов
/ 29 сентября 2011

Я определил пользовательский ресурс, и у каждого пользователя есть несколько элементов. Теперь я хочу добавить маршрут для /user/:id/items(.:format), вместо определения элементов в качестве вложенного ресурса, я использую маршрут участника:

resources :user do
  member do
    match "/items" => "items#index", :via => [:get]
  end
end

Проблема в том, что когда я пытаюсь написать rspec для контроллера, я не знаю, какое действие я должен использовать для доступа к items#index. Я пытался

describe ItemsController do
  it "denies access to item index without login" do
    sign_out @user
    get "index", :user_id => @user.id, :format => :json
    response.code.should == "401"
  end
  # ...
end

Но после выполнения rake spec: на контроллерах написано

Failure/Error: get "index", :user_id => @user.id, :format => :json
ActionController::RoutingError:
  No route matches {:user_id=>"1", :format=>"json", :controller=>"items"}

Я использую Rails 3.1. Как я могу использовать rspec для проверки этого маршрута участника? Спасибо.

1 Ответ

2 голосов
/ 05 октября 2011

Уверен, что должно быть:

get :index, :id => @user.id, :format => :json

Вам нужно пройти :id, а не :user_id

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