Согласно документации для assert_template, он устарел. Почему это устарело и что я должен использовать вместо этого?
Почему assert_template устарел и что мне следует использовать вместо него?
Ответы (2)
Отказ от ответственности: я знаю, что это довольно старый вопрос, но все равно отвечу на него.
Рассуждение:
Идея удаления этих методов заключается в том, что переменные экземпляра и шаблон, отображаемый в действии контроллера, являются внутренними элементами контроллера, и тесты контроллера не должны заботиться о них. По словам команды 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)
Ошибка Github и объяснение от самого DHH
Я не знаю, почему документ API говорит, что он устарел, он все еще живет в документации 2.3.8, но в другом файле: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Assertions/ResponseAssertions.html#M001705