Этой спецификации пассы, но не после введения языкового стандарта (приложение однако работает):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 '
Почему тест провал время приложение работает?
Как это сделать?
Кажется, что RSpec не чтит default_url_options. См https://github.com/rspec/rspec-rails/issues/255 – Ernst