【问题标题】:Controller tests for RESTful actionsRESTful 操作的控制器测试
【发布时间】:2013-01-28 06:59:54
【问题描述】:

虽然我通常使用 Fat Model, Skinny Controller 方法,但我可以看到测试复杂控制器动作的意义,但我想知道:是否有任何理由为 rails 脚手架生成的 RESTful 动作编写控制器测试?

【问题讨论】:

    标签: ruby-on-rails ruby rspec bdd


    【解决方案1】:

    简单地说:如果您的应用程序中有由您维护的代码,请测试该代码。

    我避免为 InheritedResources 或其他 REST gem 提供的操作或行为编写测试,但是一旦有逻辑,尤其是重定向和身份验证/资源所有权逻辑,就应该对其进行测试。值得注意的是,我上次使用脚手架和 rspec 时,它也为我生成了所有这些测试。

    【讨论】:

      【解决方案2】:

      根据我的经验,您的控制器规范或测试有助于调试操作中的路径或值。通常,您会看到:

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

      通过控制器测试,您可以确保在您的假设下进入正确的状态,或者您遇到正确的异常。

      【讨论】:

        【解决方案3】:

        总的来说,我发现它在测试身份验证和授权时很有用,此时我并不真正关心返回的内容,但如果我得到正确的重定向、状态代码等,我会更关心。

        我重视控制器测试的第二种情况是控制器可以用多种方言回答。例如JSON、XML 和/或 HTML。但是,当格式变得复杂时,最好使用构建器来执行此操作,而不是将这种复杂性隐藏在控制器中。

        【讨论】:

          猜你喜欢
          • 2016-01-31
          • 2010-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多