Почему assert_template устарел и что мне следует использовать вместо него?

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


person Simon    schedule 04.10.2010    source источник


Ответы (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

person fiction    schedule 19.09.2017

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

person hellvinz    schedule 04.10.2010