2013-02-12 50 views
1

虽然我一般用高脂模型,瘦控制器的方法我可以看到测试复杂的控制器操作的点,但我想知道:是否有任何理由写所产生的REST风格的动作控制器测试铁轨脚手架?控制器测试REST风格的动作

回答

1

简单地说:如果你在你的应用程序,由你保持有代码,测试代码。

我避免写由InheritedResources或其他宝石的REST提供的动作或行为测试,但一旦有逻辑,特别是重定向和认证/资源所有权的逻辑,就应该进行测试。值得注意的是,我最后一次使用scaffold和rspec它也为我生成了所有这些测试。

1

从我的经验,你的控制器规格或测试有助于在动作调试路径或值。通常情况下,你会看到:

@post = some_logic_gets_a_post 
if @post.present? 
    # happy path 
else 
    # failure path 
end 

与控制器的测试可以确保,你会在你的假设输入正确的状态,或者你打的正确例外。

1

总的来说,我觉得有用的测试认证和授权的情况下,在这一点上我真的不关心什么内容的回报,但更多的,如果我得到正确的重定向,状态码等

第二种情况我认为控制器测试是控制器可以用多种方言回答的时候。例如JSON,XML和/或HTML。但是,当格式变得复杂时,最好使用构建器来完成,而不要将这种复杂性隐藏在控制器中。