35 votes

Dans RSpec, quelle est la différence entre un mock et un double?

Dans rspec, vous pouvez créer un mock ou un double . Ces deux semblent être presque la même chose et je ne trouve rien dans la documentation qui les ambiguise.

Quelle est la différence?

38voto

Jimmy Cuadra Points 13499

mock et stub sont des alias des double plus génériques. Comme context et describe , ils peuvent être utilisés de manière interchangeable pour clarifier l'intention des spécifications. Ceci est décrit de manière beaucoup plus détaillée dans The RSpec Book .

2voto

Serabe Points 2618

Il semble que ce ne soient que des alias puisque :__declared_as ne semble pas être utilisé sauf pour les messages.

1voto

John Points 51

double

si nous comptons sur les composants avec des non-déterministes caractéristiques, on peut trouver que des fichiers sont endommagés, disque échouent, les réseaux de délai d'attente, et les serveurs de descendre dans le milieu de l'exécution de spécifications. parce que ce sont des choses que nous n'avons aucun contrôle sur, ils peuvent donner lieu à des incohérences et à des résultats surprenants lorsque nous effectuons nos spécifications. les doubles peuvent se déconnecter de nos exemples de vraies mises en œuvre de ces dépendances.

stub

lorsque le comportement du système à partir d'une séquence. un talon est parfaite pour ça .Parce que chaque exemple, vous pouvez spécifier une séquence différente.exemple:- Dans le cas d'un générateur aléatoire, c'est clairement une source de non détermination. nous voulons remplacer le réel générateur aléatoire avec la stabilisation de la séquence.

On se moque de

peu de temps nous avons besoin de certains services à partir d'un autre objet qui n'existe pas encore. Dans des cas comme cela, nous pouvons introduire un objet fantaisie. qui nous pouvons le programme se comporte comme l'objet actuellement, nous attend. ainsi, lorsque nous nous concentrons sur l'interaction avec les objets fantaisie de le rendre beaucoup plus facile à réaliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X