J'essaie d'apprendre à écrire des tests. J'apprends aussi Java, on m'a dit que je devais apprendre / utiliser / pratiquer JMock, j'ai trouvé des articles en ligne qui aident à se développer comme:
http://www.theserverside.com/news/1365050/Utilisation-jmock-in-test-driven-deviven-Development < / a> p> http://jeandessier.com/softwareEningReering/mocking. html # jmock p> et la plupart des articles que j'ai trouvés concernaient le développement axé sur les tests, les tests d'écriture d'écriture d'abord puis écrivez le code pour effectuer le test de test. Je ne cherche pas cela pour le moment, j'essaie d'écrire des tests pour un code déjà existant avec JMock. p> le Documentation officielle est vague à dire le moins et juste Trop difficile pour moi. Quelqu'un a-t-il un meilleur moyen d'apprendre cela. Les bons livres / liens / tutoriels m'aideraient beaucoup. Merci P> http://jeantessier.com/softwareEngineering/mocking.html#jmock - de cet article p> a essayé ceci pour se moquer de cette classe simple: em> p> Voici comment j'ai essayé de créer un test / maquette: p> Il passe le test et essentiellement Ne fait rien, ce que je voulais, c'est de créer une carte et de vérifier sa taille et que vous savez travailler certaines variations, essayez d'obtenir une adhérence à ce sujet. Comprendre de meilleurs exemples de creux, que pouvais-je tester ici ou tout autre exercice m'aiderait beaucoup? tnx p> p>
4 Réponses :
Je ne sais pas jusqu'où vous avez passé la voie à suivre pour apprendre à utiliser des objets faux dans les tests, je vais donc écrire une brève description, puis vous dirigera dans la direction d'un article qui vous sera utile. Des objets mockés sont utilisés dans les tests unitaires pour remplacer les dépendances externes difficiles à créer ou difficiles à entrer dans l'état que vous les souhaitez pour votre test. Les différents cadres moqueurs qui existent vous donnent des mécanismes pour créer des objets «faux» qui prennent la place de ces dépendances. Ces objets mocks garderont une trace des appels entrant dans leur code et vous permettront de faire des affirmations sur ces interactions plus tard. Il y a un article bien connu sur des objets masculins et comment ils se rapportent à des "talons", une autre stratégie de test courante pour simplifier les dépendances externes. Il a été écrit par Martin Fowler et peut être trouvé ici: P>
Pouvez-vous / faites-vous simuler des constructeurs car ils ne sont pas des méthodes, je me bat toujours pour bien comprendre.
Non, la moqueur est faite au niveau de la classe. Le cadre moqueur manipulera donc la création de l'objet "Proxy" (I.e., Mock) pour vous. N'oubliez pas que cet objet ne met pas en œuvre le comportement de l'objet que c'est moqueur. Son objectif est de garder une trace des interactions avec elle et de vous permettre de vérifier ces interactions.
Merci pour votre explication, comment puis-je tester certaines de ces méthodes?
Je ne recommanderais pas que les moqueurs ne soient-ils plus d'article. Notre compréhension a grandi un peu depuis.
Voici un tutoriel sur l'utilisation de Junit et EasyMock (une bibliothèque moqueuse que je trouve personnellement beaucoup plus facile à utiliser que JMock): http://www.michaelminminella.com/testing/unit-testing-with-junit-and-asymock.html p>
Même si vous êtes 100% dédié à utiliser JMock, les concepts entre les deux sont les mêmes et cela devrait vous aider à mieux les comprendre. P>
Le but de la moqueur est que lorsque vous testez la classe a code>, qui dépend de
b code> et
c code>, votre test de
a code> utilise des versions simulées de
B code> et
C code> pour spécifier leur comportement exact plutôt que d'utiliser les implémentations réelles de
B code> et < Code> C code> dans votre test de
A code>. Sinon, vous ne testez pas la seule unité de
A code>, vous testez implicitement
B code> et
c code>. P>
Pouvez-vous / faites-vous simuler des constructeurs car ils ne sont pas des méthodes, je me bat toujours pour bien comprendre.
Certaines bibliothèques ont pris en charge les classes moqueuses et non seulement des interfaces (EasyMock 3.0 prétend cela) mais je ne le connais pas très bien. Moqueur brille lorsque vos classes expriment des dépendances les unes sur les autres en fonction de la interface i> et non d'une classe de béton i>.
Vous n'avez pas besoin vraiment de simulacre pour tester cette classe car son seul collaborateur est une carte que vous pourriez aussi bien utiliser que vous pouvez simplement utiliser. Votre classe ne fait pas vraiment rien (sauf délégué), c'est pourquoi vous vous sentez comme si vous ne testez pas beaucoup.
Un test droit pourrait être (je suppose que vous utilisez Junit 4 - votre code est étrange Mélange de junit 3 et 4 p> avec des moqueurs, il serait (en supposant que le code simulé est correct - je n'utilise pas jmock) p> Dans les deux cas, vous configurez le système en définissant la carte pour que les propriétés que vous souhaitez tester puis vérifiez que le cache a les mêmes propriétés (car il s'agit d'un délégué droit). P> < P> Je vous recommanderais de lire sur Junit avant de continuer. p> p>
En tant qu'auteur de JMock, je ne commencerais pas avec la technique jusqu'à ce que vous ayez une certaine expérience avec TDD. Il suffit de commencer avec les bases et de le faire fonctionner. Une fois que vous avez commencé à éprouver des difficultés à l'échelle et de développer une conception, revenez à la technique. P>
Le livre de Dave Astels est toujours une bonne introduction et le seul, je pense, de cette génération qui expliquait bien les moqueurs. Après cela, vous pourriez (Ahem) envisager la nôtre, "Software en croissance orienté objet, guidé par des tests" P>
Discount Quiconque vous dit que tout est de faire des tests contre le système de fichiers aller plus vite. P>
Pas une réponse mais: Je recommanderais d'apprendre à écrire des tests avant d'examiner les moqueurs. Les simulacres sont un sujet avancé dans les tests, vous devriez d'abord maîtriser les bases.
@Arne Pouvez-vous me donner une réponse concrète Que sont considérés comme des bases? Je suis un apprenant rapide, sans dire que je suis plus intelligent que d'autres personnes, je suis impatiente d'apprendre et d'avoir beaucoup de temps sur mes mains. Donc, si une chose devient ennuyeuse, je peux passer à l'autre simple / avancée n'a pas d'importance. tnx
Vous pouvez écrire vos tests avec un cadre moqueur. Utilisez simplement Junit pour écrire vos tests. Si vous testez votre code couramment, puis rencontrez un cas, vous ne pouvez pas maîtriser sans maquette, essayez un cadre moqueur. La nécessité d'une simulation devrait être l'exception, pas la règle.