1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| import os
import unittest
from random import choice
from creation_labyrinthe import*
class RobocTest(unittest.TestCase):
"""Test case utilisé pour tester les fonctions de la classe CreationLabyrinthe
du module 'creation_labyrinthe'."""
def setUp(self):
"""Initialisation des tests :
- instanciation d'un objet CreationLabyrinthe
- création d'un dictionnaire 'joueurs'
- enregistrement du chemin
- choix de la carte ('1. facile')
"""
self.byby = CreationLabyrinthe()
self.joueurs = {'socket':1,'sockett':2,'sockettt':3}
self.chemin = os.path.abspath("cartes")
self.nom = '1. facile.txt'
def test_chargement(self):
"""Test le fonctionnement de la méthode 'chargement' de la classe
CreationLabyrinthe. Vérifie que 4 des caractères de la carte facile se trouvent
bien aux coordonnées de la carte instanciée"""
# création d'une liste à partir de la carte 'facile'
self.byby.chargement(self.chemin,self.nom)
# on vérifie que les caractères soient à la bonne place,
# et on en déduit donc, avec cet échantillon, que la carte est bien
# celle choisie
self.assertEqual(self.byby.labyrinthe[0][0], 'O')
self.assertEqual(self.byby.labyrinthe[1][1], ' ')
self.assertEqual(self.byby.labyrinthe[2][2], '.')
self.assertEqual(self.byby.labyrinthe[5][9], 'U')
def test_generation_aleatoire(self):
"""Test le fonctionnement de la méthode 'generation_aleatoire' de la
classe CreationLabyrinthe. En créant 2 cartes avec cette méthode, on vérifiera
qu'elles sont bien différentes """
# exécution de la méthode pour création d'une carte aléatoire
self.byby.generation_aleatoire()
# enregistrement de la liste ainsi obtenue dans la variable liste1
liste1 = self.byby.labyrinthe
# ensuite, on recommence, on exécute la même méthode
self.byby.generation_aleatoire()
# on enregiste la liste obtenue
liste2 = self.byby.labyrinthe
# et maintenant on s'assure que les listes ne sont pas les mêmes
self.assertNotEqual(liste1,liste2)
def test_robot(self) :
"""Teste le fonctionnement de la méthode 'robot' de la classe
CreationLabyrinthe. Le robot doit etre placé sur la carte de manière aléatoire
Donc vérification que, après placement du robot :
- 2 cartes identiques au départ deviennent différentes
- que le robot '1' se trouve bien dans la liste
- ainsi que les 2 robots suivants
"""
# on charge la carte facile dans une liste
self.byby.chargement(self.chemin,self.nom)
# ensuite on exécute notre robot, pour qu'il place les valeurs du dictio
self.byby.robot(self.joueurs)
# on enregistre la liste ainsi obtenue
carte1 = self.byby.labyrinthe
# on charge la même carte
self.byby.chargement(self.chemin,self.nom)
# de nouveau on place le robot
self.byby.robot(self.joueurs)
# et on enregistre la liste
carte2 = self.byby.labyrinthe
# encore une liste...
liste = []
# qui va contenir tous les symboles de la carte
for ligne in carte2 :
for elt in ligne :
liste.append(elt)
# on vérifie que nos 2 cartes identiques pourvues de robots
# aléatoires ... ne sont donc plus identiques
self.assertNotEqual(carte1,carte2)
# et on vérifie que nos valeurs (robots) sont bien dans la liste
self.assertIn('1',liste)
self.assertIn('2',liste)
self.assertIn('3',liste)
unittest.main() |
Partager