Si vous voulez de sauvetage, cela signifie que vous vous attendez à some code à soulever un certain type d'exception.
Vous pouvez utiliser RSpec talons à faux la mise en œuvre et la force d'une erreur. En supposant que l'exécution du bloc contient une méthode qui peut soulever des
def method_name
other_method_that_may_raise
rescue=> e
"ERROR: #{e.message}"end
crochet du talon de cette méthode dans votre specs
it " ... "do
subject.stub(:other_method_that_may_raise){ raise "boom"}
expect { subject.method_name }.to_not raise_error
end
Vous pouvez également vérifier le gestionnaire de sauvetage en testant le résultat
it " ... "do
subject.stub(:other_method_that_may_raise){ raise "boom"}
expect(subject.method_name).to eq("ERROR: boom")end
Inutile de dire, vous devez lever une erreur qu'il est susceptible d'être soulevée par la mise en œuvre réelle au lieu d'une erreur générique
{ raise FooError,"boom"}
et de sauvetage seulement que Error, en supposant que cela est pertinent.
Comme une note de côté, en Ruby, vous définissez une classe avec:
classClassName
pas
def className
comme dans votre exemple.
Grâce Carletti. Ceci est très utile pour moi de tester de sauvetage bloc. Il ne fonctionne pas quand je suis en train d'attendre méthode pour augmenter erreur quand il est déjà sauvé par la méthode.
Si vous voulez de sauvetage, cela signifie que vous vous attendez à
some code
à soulever un certain type d'exception.Vous pouvez utiliser RSpec talons à faux la mise en œuvre et la force d'une erreur. En supposant que l'exécution du bloc contient une méthode qui peut soulever des
crochet du talon de cette méthode dans votre specs
Vous pouvez également vérifier le gestionnaire de sauvetage en testant le résultat
Inutile de dire, vous devez lever une erreur qu'il est susceptible d'être soulevée par la mise en œuvre réelle au lieu d'une erreur générique
et de sauvetage seulement que
Error
, en supposant que cela est pertinent.Comme une note de côté, en Ruby, vous définissez une classe avec:
pas
comme dans votre exemple.
Il ne fonctionne pas quand je suis en train d'attendre méthode pour augmenter erreur quand il est déjà sauvé par la méthode.
OriginalL'auteur Simone Carletti