2011-05-17 2 views
31

Existe-t-il un moyen rapide de générer la valeur de la variable dans un test rspec? Quelque chose comme ça, par exemple, dans un contrôleur à la sortie d'une variable, je fais:Comment générer une variable dans un test rspec?

raise variable.to_yaml 

Y at-il quelque chose de similaire que je peux faire dans un test rspec pour voir le contenu d'une variable?

Répondre

59

Si vous souhaitez que la sortie soit enregistrée dans le fichier journal (c'est-à-dire logs/test.log), vous pouvez utiliser l'enregistreur de rails.

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

Si vous voulez voir la sortie dans la console, vous pouvez utiliser la jolie imprimante 'pp'.

require 'pp' 

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

Ou vous pouvez utiliser un bon « ol met

puts thing.to_yaml 
+4

Doux, merci ipd. 'pp' était exactement ce que je cherchais. (Cela a fonctionné pour moi sans l'instruction "require 'pp'".) – user657823

+1

Oui, parfois 'pp' est déjà requis quelque part dans votre pile Rails. – ipd

+1

Aucun de ceux-ci ne fonctionne pour moi :(Ou plutôt, aucune des options 'pp', ni les options' to_yaml'. – marcamillion

3

En ce moment (Rails 4), vous pouvez l'enregistrer:

p variable

1

Utilisez ceci:

$stderr.puts variable.to_yaml