Question

Je viens de regarder ce drôle YouTube vidéo de tests unitaires (il est Hitler avec des sous-titres faux à mâcher son équipe pour ne pas faire de bons tests unitaires - sauter si vous êtes avec facultés affaiblies humour) où les talons se vertement critiqué. Mais je ne comprends pas ce mal avec des talons.

Je n'ai pas commencé à utiliser un cadre moqueur et je ne l'ai pas commencé à ressentir la douleur de ne pas utiliser un.

Suis-je dans un monde un mal parfois en bas de la ligne, ayant choisi des talons écrits à la main et de faux au lieu de se moque (comme Rhinomock etc) (en utilisant la taxonomie de Fowler)

Quelles sont les considérations pour choisir entre un talon maquette et écrit à la main?

Était-ce utile?

La solution

Il n'y a rien de mal à talons, il y a place pour des talons, se moque ... et des espions. Tous sont "doubles tests", mais avec des objectifs différents, comme expliqué dans xUnit Patterns Gerard Meszaros   livre .

     
      
  • Un objet factice est un objet d'espace réservé transmis au système testé   mais jamais utilisé.
  •   
  • un stub de test fournit le système en cours de test avec une entrée indirecte
  •   
  • Un test Spy fournit un moyen de vérifier que le système sous test effectué   la sortie indirecte correcte
  •   
  • Un objet Mock fournit le système testé à la fois entrée indirecte   et un moyen de vérifier la sortie indirecte
  •   
     

[...] Et vous pouvez laisser ce tableau pratique   guider vos décisions:

     

PS: Mockito - La Nouvelle Mock cadre sur le bloc vaut le lire aussi.

Autres conseils

J'utilise la terminologie suivante (introduite par Roy Osherove, l'auteur de l'art de l'unité-test):

faux est appelé stub si vous dites à quelque chose de faux dans le cas où une méthode est appelée avec les paramètres tels et tels. Mais si vous aussi vérifier que cet appel a effectivement eu lieu ou a eu lieu exactement N fois, alors ce faux est appelé mock . En bref. un faux est un bout à moins que vous appelez verify () sur lui et il est un faux.

De toute évidence, vous aurez besoin d'utiliser des talons dans certains cas, et se moque dans d'autres. Donc, critiquer vertement les talons est probablement faux et l'utilisation des talons est exclusivement probablement tort aussi.

Si vous ne l'avez pas commencé à utiliser un cadre moqueur (autre terme: Cadre d'isolement ), vous devez garder un œil sur eux et de réévaluer vos options fréquemment. Je suis passé de simulacres manuel à NMock2 Moq très rapidement à. Voici un intéressant sondage de programmeurs qui montre ce qu'ils utilisent. Manuel simulacres / talons sont en minorité, mais ne sont pas si rares.

Mocks sont juste beaucoup plus facile de jeter. Ils sont une véritable instance de votre classe, pré-liftée avec la possibilité de passer outre l'action de toute méthode avec un minimum boilerplate.

Il y a beaucoup de petites considérations telles que: Si vous ne voulez pas faire face à l'une des méthodes, vous pouvez l'avez agir comme un non-op ou échouent au test - votre choix - mais de toute façon pratiquement pas de code.

Combien passe-partout que vous obtenez lorsque vous cognez une classe? Comment gérez-vous si votre classe est définitive? Jouez-vous des astuces pour obtenir votre talon sur le classpath en premier lieu, ou utilisez-vous autre source?

Je recommande simplement à commencer par les simulacres - Il est plus facile autour de

.

Il n'y a rien de mal à utiliser des talons au lieu de se moque.

Si vous souhaitez obtenir technique, se moque des objets « intelligents » avec des attentes qui peuvent être vérifiées. Moignons sont des objets factices qui renvoient des valeurs prédéfinies. Voir Mocks Ne sont pas Stubs .

Mais beaucoup de gens (y compris moi) préfèrent faire des tests d'état avec des talons plutôt que des tests de comportement avec des simulacres. Vous injectez un talon dans la classe en cours de test, vous appelez une méthode, vous vérifiez l'état de la classe en cours de test. Il a tendance à faire des tests moins fragile que l'affirmation qui a appelé les parties internes de la classe méthode X d'un objet simulé avec l'argument Y.

Je ne pense pas que vous êtes dans un monde de souffrance. Si vous ne l'avez pas commencé à ressentir la douleur, vous ne avez probablement pas besoin d'un isolement / moqueur encore cadre. Quand et si vous le faites, ayant des talons écrits à la main / faux autour ne va pas faire du mal à quoi que ce soit.

Si vous avez beaucoup d'interfaces, ou si vos interfaces ont beaucoup de méthodes, un isolement / cadre moqueur peut économiser beaucoup de temps sur les talons de codage manuel.

J'aime Moq beaucoup; Je trouve plus facile à utiliser que Rhino Mocks pour créer des talons.

Mocks et talons est utilisé pour réaliser un véritable test unitaire. Vous mock toutes les dépendances, et l'unité de tester votre classe dans l'isolement.

J'utilise actuellement MOQ pour se moquant et stubbing.

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