Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlTD2y1314r1.2 - 15 Oct 2013 - 21:50 - PhilippeCollettopic end

Start of topic | Skip to actions

TD 2 : tests unitaires

PhilippeCollet

Le retour de la créature

Téléchargez creaturesLab2.zip et créez un nouveau projet pour ce TD. L'archive contient

  • une correction de SmartCreature
  • quelques changements dans l'organisation de certaines méthodes
  • le code d'une BouncingCreature :
    • elle change de direction aléatoirement après un certain nombres d'étapes (voir la partie "noise")
    • elle est supposée rebondir sur les bords de l'environnement

Mais cette BouncingCreature est buggée. Exécutez l'application et observez... Il va falloir corriger tout cela.

Exercice 1 : premier test sur le rebond

Dans un premier temps :

  • Réfléchissez sur l'organisation des tests :
    • Que faut-il tester ? Que peut-on vraiment tester ? Quelle classe et quelle méthode ?
    • Comment réaliser le test ? Quel(s) objet(s) initialiser pour le test ?
  • Créez le premier test (utiliser le wizard de création de testCase, il incluera la bibliothèque JUnit 4 automatiquement dans votre projet)

Exercice 2 : le jeu des 3 erreurs

Il y a en fait 3 erreurs dans BouncingCreature (dans la gestion du rebond). Trouvez les tests qui les caractérisent, puis corrigez les.

Exercice 3 : objets mock

Utiliser directement l'environnement n'est pas une bonne idée : le thread associé s'exécute en arrière-plan et peut appeler la méthode act() avant votre test unitaire. S'il faut modifier du code existant c'est le signe qu'il faut utiliser un mock.

Set up:

  1. Téléchargez mockito mockito-all-1.9.5.jar
  2. Créez un nouveau répertoire lib dans votre projet
  3. Copiez ici le jar de mockito
  4. clic droit sur le jar et sélectionnez Build Path -> Add to build path

Modifiez les précédents tests pour utiliser un mock de l'Environment : pensez à mocker (when...) les méthodes uniquement utiles pour le test (cad celles qui vont être appelées par le code de act()...).

Exercise 4: test de l'émergence

  • Créez un seul test (avec un mock) pour vérifier le fonctionnement correct de l'algorithme d'émergence de SmartCreature.
  • Ajoutez des instructions "verify" de mockito pour s'assurer des interactions entre la créature et son environnement (quels appels doivent être faits par l'algorithme).

-- PhilippeCollet - 14 Oct 2013
to top


You are here: Minfo > GlTD2y1314

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback