如何在rspec测试中输出变量?

dou*_*ree 36 rspec ruby-on-rails

在rspec测试中是否有快速输出变量值的方法?例如,在控制器中输出变量,我这样做:

raise variable.to_yaml
Run Code Online (Sandbox Code Playgroud)

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

ipd*_*ipd 68

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

Rails.logger.debug variable.inspect
Rails.logger.debug variable.to_yaml
Run Code Online (Sandbox Code Playgroud)

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

require 'pp'

it 'does something'
  thing = Factory(:something)
  pp thing
end
Run Code Online (Sandbox Code Playgroud)

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

puts thing.to_yaml
Run Code Online (Sandbox Code Playgroud)

  • 甜蜜,谢谢ipd.'pp'正是我想要的.(它也适用于我,没有"require'pp'"声明.) (5认同)
  • 这些都不适合我:(或者更确切地说,没有一个“pp”选项,也没有一个“to_yaml”选项。 (2认同)

Puc*_*uce 5

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

p variable