據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