2013-01-07 2 views
0

Я использую Rails 3.1.0 и Rspec 2.12.2. Я хочу, чтобы иметь действие, которое мы публикуем с помощью JQuery для:named path не распознается в rspec

/path/api/save-reply 

У меня есть следующая спецификация:

describe 'test adding new mb post' do 
    it 'shall add a new mb post' do 
    post :save_reply, mb_detail: 'here is my detail', timestamp_id: 123, parent_id: 50, depth: 0 
    end 
end 

со следующим названием маршрут:

routes.rb

post '/api/save-reply' => 'api_mb#save_mb_reply', :as => :save_reply, :defaults => { :format => 'json' } 

И получить следующую ошибку:

1) ApiMbController test adding new mb post shall add a new mb post 
    Failure/Error: post :save_reply, mb_detail: 'here is my detail', timestamp_id: 123, parent_id: 50, depth: 0 
    AbstractController::ActionNotFound: 
    The action 'save_reply' could not be found for ApiMbController 
    # ./spec/controllers/api_mb_controller_spec.rb:16:in `block (3 levels) in <top (required)>' 

Не должен ли специфицировать правильный путь «save_mb_reply», а не пытаться «save_reply»? Что я делаю не так?

Если я бегу:

Mon Jan 07$ bundle exec rake routes | grep save_reply 
         save_reply POST /arc/v1/api/save-reply(.:format)             {:format=>"json", :controller=>"api_mb", :action=>"save_mb_reply"} 
Mon Jan 07$ 

ТНХ заранее

ответ

1

спецификации контроллера не использовать маршрутизацию для определивших, что называть - они просто вызовите метод, который вы укажете.

+0

thx - это выглядит правильно. Единственная причина, по которой я использую контроллер, а не спецификации запросов, - это обрабатывать файлы cookie. Есть ли лучший способ справиться с этим? – timpone

+0

Я думаю, вы все еще можете использовать материал cookie в спецификации запроса. –

+0

ok, thx - Я загляну в него (может быть, еще?) – timpone

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