Почему assert_template устарел, и что я должен использовать вместо этого? - PullRequest
1 голос
/ 04 октября 2010

Согласно документации для assert_template , она устарела.Почему это устарело, и что я должен использовать вместо этого?

Ответы [ 2 ]

1 голос
/ 19 сентября 2017

Отказ от ответственности: Я знаю, что это довольно старый вопрос, но все равно на него отвечу.

Причина:

Идея, лежащая в основе удаленияиз этих методов является то, что переменные экземпляра и какой шаблон отображается в действии контроллера, являются внутренними элементами контроллера, и тесты контроллера не должны заботиться о них.По мнению команды 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

1 голос
/ 04 октября 2010

Я не знаю, почему api doc говорит, что он устарел, он все еще живет в документации 2.3.8, но в другом файле: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Assertions/ResponseAssertions.html#M001705

...