据the documentation for assert_template,它的弃用。为什么不推荐使用,我应该使用什么?为什么不推荐使用assert_template,而应该使用什么?
1
A
回答
1
免责声明:我知道,这是很老的问题,但无论如何都会回答。
推理:
去除这些方法背后的想法是,实例变量和模板在控制器的行动呈现是控制器的内部,和控制器测试不应该关心他们。 根据Rails的团队,控制器测试应该更关心的是什么HTTP代码设置,而不是在控制器的内部测试该控制器的动作像什么饼干设置,或结果。所以,这些方法从核心中删除。
提出的解决方案:
assert_response :success
# or rspec with should
response.should be_success
# or rspec with expect
expect(response).to have_http_status(:success)
1
我不知道为什么API文档说,它已被弃用,但仍住在2.3.8的文件,但在另一个文件:http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Assertions/ResponseAssertions.html#M001705