Согласно the documentation for assert_template, это устарело. Почему он устарел, и что я должен использовать вместо этого?Почему assert_template устарел, и что я должен использовать вместо этого?
ответ
Отказ от ответственности: Я понимаю, что это довольно старый вопрос , но все равно ответит.
Рассуждение:
Идея удаления этих методов является то, что переменные экземпляра и какой шаблон отображается в действии контроллера являются Внутренности контроллера и тесты контроллер не должен заботиться о них. Согласно команде Rails, тесты контроллера должны быть более обеспокоены тем, что является результатом действия этого контроллера, например, какие файлы cookie установлены, или какой HTTP-код установлен, а не тестировать внутренние элементы контроллера. Таким образом, эти методы удаляются из ядра.
Предлагаемое решение:
assert_response :success
# or rspec with should
response.should be_success
# or rspec with expect
expect(response).to have_http_status(:success)
Я не знаю, почему апи док говорит, что это является устаревшим, он до сих пор живет в 2.3.8 документации, но в другом файле: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Assertions/ResponseAssertions.html#M001705