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.

Était-ce utile?

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é.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top