【问题标题】:How do I output a variable in a rspec test?如何在 rspec 测试中输出变量?
【发布时间】:2011-05-17 03:04:23
【问题描述】:

有没有一种快速的方法可以在 rspec 测试中输出变量的值?像这样的事情,例如,在控制器中输出一个变量,我这样做:

raise variable.to_yaml

我可以在 rspec 测试中做类似的事情来查看变量的内容吗?

【问题讨论】:

    标签: ruby-on-rails rspec


    【解决方案1】:

    如果您希望输出进入日志文件(即logs/test.log),您可以使用rails 记录器。

    Rails.logger.debug variable.inspect
    Rails.logger.debug variable.to_yaml
    

    如果你想在控制台看到输出,你可以使用漂亮的打印机'pp'。

    require 'pp'
    
    it 'does something'
      thing = Factory(:something)
      pp thing
    end
    

    或者你可以使用好的 'ol puts

    puts thing.to_yaml
    

    【讨论】:

    • 很好,谢谢 ipd。 'pp' 正是我想要的。 (它也对我有用,没有“require 'pp'”语句。)
    • 是的,有时你的 Rails 堆栈中的某个地方已经需要 'pp'。
    • 这些都不适合我 :( 或者更确切地说,pp 选项和to_yaml 选项都没有。
    【解决方案2】:

    此时(Rails 4)你可以记录它:

    p variable

    【讨论】:

      【解决方案3】:

      使用这个:

      $stderr.puts variable.to_yaml
      

      【讨论】:

        【解决方案4】:

        你可以使用 gem pry 来做到这一点

        1. 在您的 gemfile 中添加 gem "pry"
        2. bundle install

        现在您可以通过在变量之后放置“binding.pry”来测试任何变量。运行bundle exec rspec filepath,你会得到类似rails c的东西,然后直接写你的变量。

        我希望它有意义

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-06
          • 2012-12-13
          • 2021-09-28
          • 1970-01-01
          • 2012-10-15
          相关资源
          最近更新 更多