В ApplicationHelper у меня есть такой код:
def inside_layout layout = 'application', &block
@template.instance_variable_set '@content_for_layout', capture(&block)
concat \
@template.render :file => "layouts/#{layout}", :use_full_path => true
end
который ведет себя как это:
application.html.haml:
!!!
%html
%head
...
%body
= yield
common_pages.html.haml:
- inside_layout do
...
Затем расположение common_pages представляет в рамках расположения приложения.
Как я могу протестировать этого помощника с RSpec?
Когда я называю inside_layout из файла спецификации:
helper.inside_layout { }
RSpec говорит ошибку:
ActionView::MissingTemplate in 'ApplicationHelper inside_layout should render nested layout within application layout'
Missing layout layouts/application.erb in view path
Но приложение хорошо работает.
Вы не можете использовать вызовы рендеринга непосредственно в rspecs для помощников, так как view-path не задан в этом контексте.
Предложения: