2013-06-24 2 views
1

Этой спецификации пассы, но не после введения языкового стандарта (приложение однако работает):Rails RSpec вид с локалью, ни одного маршрута не соответствует

require 'spec_helper' 
describe "products/show" do 
    before do 
    assign(:product, mock_model("Product", name: "Car", description: "petrol engine")) 
    end 
    it "renders name" do 
    render 
    expect(rendered).to match /Car/ 
    end 
end 

Затем я добавить область к маршрутам включить локаль: .. .

scope "/:locale" do 
    resources :products 
    root :to => 'products#index' 
    end 

...

В контроллере приложения я определяю:

def self.default_url_options(options={}) 
    logger.debug "default_url_options is passed options: #{options.inspect}\n" 
    I18n.locale = 'en' # fixed for tests 
    { :locale => I18n.locale} 
end 

В браузере приложение снова работает с путями, как /ен/продукт/1 Оказать шаблон шоу

Но мой тест выше терпит неудачу с:

1) products/show renders name Failure/Error: render ActionView::Template::Error: No route matches {:action=>"edit", :controller=>"products", :locale=>#} # ./app/views/products/show.html.erb:14:in _app_views_products_show_html_erb__333746538_80999240' # ./spec/views/products/show.html.erb_spec.rb:10:in block (2 levels) in '

Почему тест провал время приложение работает?

Как это сделать?

+0

Кажется, что RSpec не чтит default_url_options. См https://github.com/rspec/rspec-rails/issues/255 – Ernst

ответ

1

Это решение работает для меня:

скопирована из https://github.com/rspec/rspec-rails/issues/255 автор: https://github.com/oelmekki

class ActionDispatch::Routing::RouteSet 
    def url_for_with_locale_fix(options) 
    url_for_without_locale_fix({:locale => I18n.default_locale}.merge(options)) 
    end 
    alias_method_chain :url_for, :locale_fix 
end 
+0

'RSpec SPEC/Views' теперь работает, но 'весна RSpec спецификации/виды' не ActionView :: Шаблон :: Ошибка: уровень слишком глубокий # /usr/local/rvm/gems/ruby-1.9.3-head/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:23 Я привык проверять с помощью стража-весны. Теперь это не работает для просмотров. – Ernst

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