Comment spécifier des valeurs de rendement attendu?
-
08-10-2019 - |
Question
Je suis nouveau à RSpec et que j'écrivais un test spec je suis tombé sur un problème où les tests spec passent même si les valeurs de retour sont différentes que ce que je spécifié dans mes attentes. Par exemple:
@q= Query.new
@q.should_receive(:number_to_name).with(0).and_return("no such boro")
@q.number_to_name(0)
passe même si le Query.number_to_name retourne une valeur différente quand je l'appelle avec 0. Je ne comprends pas de quoi faire de cela.
La solution
should_receive
fait partie des outils moqueurs de rspec.
@q.should_receive(:number_to_name).with(0).and_return("no such boro")
Vous moquez number_to_name
sur @q
, la mise attend à ce que number_to_name
sera appelée avec un argument de 0
et que la maquette sera de retour "no such boro"
. @q.number_to_name(0)
satisfait alors que l'exécution attente en appelant la maquette. Votre mise en œuvre de number_to_name
n'a jamais été appelé et n'est pas testé.