2011-05-17 48 views
31

有沒有一種快速的方法來在rspec測試中輸出變量的值?事情是這樣的,例如,在控制器輸出變量,我做的:如何在rspec測試中輸出變量?

raise variable.to_yaml 

是否有類似的東西,我可以在一個RSpec的測試做看到一個變量的內容?

回答

59

如果希望輸出進入日誌文件(即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 

或者你可以用好「醇提出

puts thing.to_yaml 
+4

甜,感謝ipd。 'pp'正是我所期待的。 (它在沒有「require'pp'」語句的情況下也適用於我。) – user657823 2011-05-17 04:44:18

+1

是的,有時'pp'已經在你的Rails棧中的某個地方需要。 – ipd 2011-05-17 17:01:11

+1

這些都不適合我:(或者,沒有'pp'選項,也沒有'to_yaml'選項。 – marcamillion 2015-05-05 02:21:57

3

此時(軌道4),你可以登錄它:

p variable

1

使用此:

$stderr.puts variable.to_yaml