我有一个非常简单的应用程序控制器方法要测试。其他应用程序控制器方法将使用它来确定我们是否需要重定向。所以它不会执行任何render
功能。
class ApplicationController < ActionController::Base
def has_consent
current_user ? current_user.consent : nil
end
end
小型测试使用的所有示例#assert_response
或#assert_redirected_to
. 如何访问application_controller
迷你测试框架中的方法?IE,我可以编写测试,但是我到底要怎么设置呢?
简单的答案是你没有。
控制器的公共 API 是响应 HTTP 请求的操作,您可以通过发送 HTTP 请求并编写有关返回响应的断言来测试它们。
如果您的方法不响应 HTTP 请求,则它应该是私有方法。而且你不测试私人。
相反,您应该通过测试您的应用程序在用户未表示同意时如何响应来进行测试。不是实现细节。
如果单独测试方法真的很重要,那么它不属于控制器。而是在模型层或助手中 - 可以单独测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句