【问题标题】:How to log rails controller filters during rspec controller tests如何在 rspec 控制器测试期间记录 rails 控制器过滤器
【发布时间】:2011-02-09 23:47:52
【问题描述】:

假设我有一个带有许多前置过滤器的控制器。在控制器测试中,尽管在我发布的规范中,代码永远不会到达#create 方法:create。在我的情况下是这样的

before_filter :user_signed_in

没有验证,但测试日志没有表明这一点,所以我不得不通过依次打开/关闭所有过滤器来解决这个问题。是否可以让 Rails 在依次处理每个过滤器并将其输出到测试日志时进行一些详细的日志记录?

【问题讨论】:

    标签: ruby-on-rails logging filter controller rspec


    【解决方案1】:

    这是我解决相同问题的方法。我确信下面的代码仍然可以改进很多,并可能放入它自己的模块中。欢迎改进。

    您需要将以下代码放入顶部的 ActionController,通常是 ApplicationController 或您需要跟踪的任何控制器:

    类 ApplicationController

    托马什·波斯皮塞克

    【讨论】:

      【解决方案2】:

      我不明白,为什么该方法中的logger.info ":user_signed_in called" 不起作用。您甚至可以使用puts ":user_signed_in called",它直接在 rspec 的输出之间打印该行。不会很漂亮,但可能比阅读整个 test.log 文件更容易。

      【讨论】:

      • 我认为您错过了问题的目的。我想避免寻找每个过滤器的源代码并在那里插入 Rails.logger 命令。我希望rails中可能有一些钩子来允许跟踪回调序列。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多