Je suis un débutant à des tests unitaires. Comment vérifier la sortie de la console?
J'ai } p> Comment dois-je tester correctement cela?
Merci pour tous les indicateurs.
À votre santé,
~ ck p> p>
4 Réponses :
Ce que vous ne feriez pas du tout ce que vous feriez.
Dans votre test, vous vérifiez généralement l'état de l'objet, avec quelque chose comme: p> en fonction sur la façon dont votre cadre choisi fonctionne. Donc, vous devrez changer votre approche, en général, pour vous conformer à ce modèle. P> P>
Vous n'avez pas besoin de tester la routine "console.write" parce que vous devez supposer que cela fonctionne - ce n'est pas votre code, alors pourquoi voulez-vous le tester. Vous devez tester si vous produisez une chaîne correcte transmise à la "console.write"
en d'autres termes, au lieu de: p> vous pouviez faire: P > puis dans le boîtier de test: p> espère que cela aide.
Regades
Simon P> P>
Que Assert ne teste que la méthode ProductionXXCircle (), et non que la méthode de tirage au sort a été appelée.
En effet, mais que voulez-vous tester? Si la console.writeline est-elle correctement émettant des chaînes à la console? Vous ne devez pas tester cela, car la console.writeline n'est pas votre code. Cela fait partie du cadre
Oui, le code d'origine tente d'essayer d'effectuer un test assez vide - appelant s.drawxxshape (); code> puis vérifiez que la méthode
drawxxshape code> a été appelée. Mais au moins cela commence à commencer à tester.
La réponse littérale serait que vous utiliseriez La meilleure réponse serait d'utiliser un cadre moqueur, comme Rhino Mocks pour créer une instance de béton de votre classe abstraite, avec un ensemble d'attentes que la méthode console.setout code> avant d'appeler la classe sous test sur Direct
stdout code> dans une mémoire Mémoramatre ou similaire, dont le contenu vous pouvez inspecter ultérieurement. . P>
drawxxshape code> serait appelée. P>
Je suppose que certains autres tests testent les capacités de dessin - Si vous souhaitez maintenant tester que vos classes écrivent quelque chose en particulier à la console, vous devez abstraire l'idée d'écrire à la console. P>
Créer une interface avec une méthode writeine () en elle et injecter des instances qui implémentent cette interface dans XXShapes. Vos tests peuvent injecter des simulacres ou des talons qui peuvent capturer les chaînes écrites et tester leur contenu dans les tests. P>