虽然我通常使用 Fat Model, Skinny Controller 方法,但我可以看到测试复杂控制器动作的意义,但我想知道:是否有任何理由为 rails 脚手架生成的 RESTful 动作编写控制器测试?
问问题
56 次
3 回答
1
根据我的经验,您的控制器规范或测试有助于调试操作中的路径或值。通常,您会看到:
@post = some_logic_gets_a_post
if @post.present?
# happy path
else
# failure path
end
通过控制器测试,您可以确保您将在假设下进入正确的状态,或者您遇到正确的异常。
于 2013-02-12T20:56:21.697 回答
1
一般来说,我发现它在测试身份验证和授权时很有用,此时我并不真正关心内容返回什么,但如果我得到正确的重定向、状态代码等,我会更关心。
我重视控制器测试的第二种情况是控制器可以用多种方言回答。例如 JSON、XML 和/或 HTML。但是,当格式变得复杂时,最好使用构建器来执行此操作,而不是将这种复杂性隐藏在控制器中。
于 2013-02-12T22:04:26.727 回答
1
简单地说:如果您的应用程序中有代码,由您维护,请测试该代码。
我避免为 InheritedResources 或其他 REST gem 提供的操作或行为编写测试,但是一旦有逻辑,尤其是重定向和身份验证/资源所有权逻辑,就应该对其进行测试。值得注意的是,我上次使用脚手架和 rspec 时,它也为我生成了所有这些测试。
于 2013-02-13T18:54:46.340 回答