603 votes

Ce qui est Moqueur ?

Ce qui est moqueur ?.

668voto

Martin Liversage Points 43712

Prologue: Si vous cherchez le nom de la maquette dans le dictionnaire, vous trouverez que l'une des définitions du mot est quelque chose comme une imitation.


Se moquant est principalement utilisé dans les tests unitaires. Un objet sous test peut avoir des dépendances sur d'autres (complexe) des objets. Pour isoler le comportement de l'objet que vous souhaitez tester vous remplacer les autres objets par se moque de qui simulent le comportement des objets réels. Ceci est utile si les objets réels ne sont pas pratiques à intégrer dans l'unité de test.

En bref, en se moquant est la création d'objets qui permettent de simuler le comportement des objets réels.


Parfois, vous pouvez vouloir distinguer entre les moqueries , par opposition à cogner. Il peut y avoir de désaccord sur ce sujet, mais ma définition d'un stub est un "minimum" simulé objet. Le stub implémente juste assez de comportement pour permettre à l'objet sous test pour exécuter le test.

Une maquette est comme un tampon, mais le test permettra également de vérifier que l'objet à tester appelle le simulacre comme prévu. Une partie de l'épreuve est de vérifier que la maquette a été utilisé correctement.

Pour donner un exemple: Vous pouvez stub une base de données par la mise en œuvre d'une simple structure en mémoire pour stocker les documents. L'objet sous test peut lire et écrire des enregistrements dans la base de données de stub pour l'autoriser à exécuter le test. Cela pourrait tester le comportement de l'objet n'est pas lié à la base de données et la base de données de stub serait inclus juste pour le test.

Si vous voulez vérifier que l'objet sous test écrit certaines données spécifiques à la base de données, vous aurez à se moquer de la base de données. Votre test alors intégrer des assertions à propos de ce qui a été écrit à la base de données se moquer.


Sur Stackoverflow, vous pouvez trouver une question à propos de .NET se moquant de cadres (comme cette question est balisé [c#]).

32voto

David Hall Points 17450

Il y a beaucoup de réponses sur DONC et bon posts sur le web au sujet de moqueries. Un endroit que vous pourriez commencer votre recherche est le post de Martin Fowler se moque de ne Stubs où il discute beaucoup des idées que de se moquer.

Dans un paragraphe - Moqueur est un particlar technique pour permettre de tester une unité de code sans être tributaire des dépendances. En général, ce qui différencie les moqueries des autres méthodes est que les objets fantaisie utilisé pour remplacer le code dépendances permettra aux attentes établir un simulacre de l'objet de savoir comment il est destiné à être appelé par votre code et comment réagir.


Votre question initiale mentionnée TypeMock, donc j'ai laissé ma réponse ci-dessous:

TypeMock est le nom d'un commercial se moquant de cadre.

Il offre toutes les fonctionnalités de la libre moqueur cadres comme RhinoMocks et Moq, plust certaines options plus puissantes.

Si oui ou non vous avez besoin d'TypeMock est très discutable, vous pouvez ne plus se moquant de vous voudrait jamais avec gratuit moqueur bibliothèques, et beaucoup affirment que les capacités offertes par TypeMock sera souvent vous conduire à l'écart de bien encapsulé conception.

Comme une autre réponse déclaré "TypeMocking' n'est pas réellement un concept défini, mais pourrait signifier le type de moqueries que TypeMock propose, à l'aide de la CLR profiler à intercepter .Net appelle à l'exécution, donner beaucoup plus de capacité de faux objets (pas de besoins tels que la nécessité d'interfaces ou de méthodes virtuelles).

12voto

Venkat Kotra Points 2697

Se moquer est une méthode/de l'objet qui simule le comportement d'un véritable méthode/objet contrôlée. Les objets fantaisie sont utilisés dans des tests unitaires.

Souvent une méthode à tester les appels de certains autres services externes ou des méthodes. Celles-ci sont appelées dépendances. Une fois l'objet de moqueries, les dépendances se comporter de la façon dont nous avons défini.

Avec les dépendances d'être contrôlé par se moque, on peut facilement tester le comportement de la méthode que nous avons codé. C'est le test Unitaire.

Quel est le but de se moquer des objets?

On se moque de vs talons

Les tests unitaires vs tests Fonctionnels

5voto

Brian Rasmussen Points 68853

Le but de se moquer de types est de rompre dépendances afin d'isoler le test d'une unité spécifique. Les talons sont de simples substituts, tandis que les simulacres sont des substituts qui peuvent vérifier l'utilisation. Un moqueur cadre est un outil qui va vous aider à générer les stubs et se moque.

EDIT: Depuis la rédaction initiale mention de type "moqueur", j'ai l'impression que ce lié à TypeMock. Dans mon expérience, le terme général est juste de la "moquerie". N'hésitez pas à sauter au-dessous info spécifiquement sur TypeMock.

TypeMock Isolateur diffère de la plupart des autres se moquant de cadre en ce qu'elle fonctionne ma modification IL à la volée. Qui lui permet de se moquer des types et des instances que la plupart des autres cadres ne peut pas se moquer. Pour se moquer de ces types de/cas avec d'autres cadres vous devez fournir vos propres abstractions et de se moquer de ces.

TypeMock offre une grande flexibilité au détriment de la propreté de l'environnement d'exécution. Comme un effet secondaire de la manière TypeMock atteint ses résultats que vous obtenez parfois des résultats très étranges lors de l'utilisation de TypeMock.

4voto

Oded Points 271275

Je pense que l’utilisation de l’infrastructure factices de TypeMock isolator serait TypeMocking.

C’est un outil qui génère des simulacres pour utilisation dans les tests unitaires, sans avoir besoin d’écrire votre code avec la COI à l’esprit.

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