Я создал Rails Engine в обычном режиме, установил RSpec, и создал основу для модели, но я не могу передать какие-либо спецификации маршрутизации.
Вот один пример:
describe Licensing::LicensesController do
it 'routes to #index' do
get('/licensing/licenses').should route_to('licensing/licenses#index')
end
end
Я запускаю примеры в фиктивном приложении следующим образом:
$ cd spec/dummy
$ rake spec
/Users/brandan/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec ../routing/licensing/licenses_routing_spec.rb
F
Failures:
1) Licensing::LicensesController routes to #index
Failure/Error: get('/licensing/licenses').should route_to('licensing/licenses#index')
No route matches "/licensing/licenses"
# /Users/brandan/repos/licensing/spec/routing/licensing/licenses_routing_spec.rb:5:in `block (2 levels) in <top (required)>'
Finished in 0.04345 seconds
1 example, 1 failure
Двигатель установлен в фиктивном приложении правильно:
# spec/dummy/config/routes.rb
Rails.application.routes.draw do
mount Licensing::Engine => "/licensing"
end
И я могу войти в фиктивное приложение, запустить консоль и получить этот маршрут в полном порядке:
1.9.3p194 :001 > app.get('/licensing/licenses')
Licensing::License Load (0.3ms) SELECT "licensing_licenses".* FROM "licensing_licenses"
200
1.9.3p194 :002 > app.response.body
"<!DOCTYPE html>..."
Есть некоторое несоответствие между фиктивным приложением и RSpec, и я не могу понять, что это такое. Я нашел несколько статей, в которых утверждается, что эта проблема решена, но ни одна из них не помогла, и некоторые из них относятся к Rails 3.1:
- Статья Райана Бигга о создании и тестировании движков
- Статья Мэтью Ратцлоффа о тестировании движка маршруты в Rails 3.1
- Статья Стефана Винерта о навесных двигателях
- Сообщение списка рассылки о тестировании помощников маршрутизации в Rails 3.2
Кто-нибудь решил эту проблему в Rails 3.2 / RSpec 2.10?
:type => :routing
? - person Tanzeeb Khalili   schedule 02.08.2012spec/routing
, и явное указание:type => :routing
также не приводит к передаче примеров. Есть еще идеи? : - / - person Brandan   schedule 02.08.2012describe "the routes" do ...
и 2) Другой синтаксис:{ :get => '/licensing/licenses' }.should be_routable
- person Tanzeeb Khalili   schedule 03.08.2012