тестирование того, что контроллер Rails выбирает макет без рендеринга макета - PullRequest
1 голос
/ 31 августа 2011

Я хотел бы отключить рендер и проверить, что выбран определенный макет.

бонусный улов: в тестовой среде этот файл макета не будет существовать

Есть ли умный способ определить, выбрал ли контроллер макет без рендеринга и без вызова ошибки ActionView :: MissingTemplate?

(это в приложении Rails 2.3, но вы можете свободно общаться в rails 3)

1 Ответ

1 голос
/ 31 августа 2011

Самый простой способ сделать это - поместить логику выбора макета в помощник и напрямую протестировать помощник.Не нужно ничего заглушать или подделывать рендеринг.

class MyController < ActionController::Base
  layout :choose_layout

private
  def choose_layout
    if some_thing?
      'this_layout'
    else
      'other_layout'
    end
  end
end

class MyControllerTest < ActionController::TestCase
  test "choose_layout" do
    @controller.stubs(:some_thing? => true)
    assert_equal 'other_layout', @controller.send(:choose_layout)
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...