21-01-2012, 01:53 PM
en ce moment par exemple je développe les méthodes controlant qu un joueur puisse manipuler un objet dans une quantité suffisante
si mon code trouve une anomalie (donc que le joueur soit triche, soit s'est planté, soit n'a plus l'objet parce qu un autre lui a piqué entre deux clics) je dois lui renvoyer un message
Pour le moment, mon controle provoque une alerte en cas de défaut :
Pour vérifier que mon algo tourne, j'instancie des objets des contraintes, etc.. pour construire une batterie de test. C'est pourquoi on peut voir en dessous "sol_bon8" pour un id d'un objet (qui est au sol, au bon endroit, dont le "type" est 8). Evidemment dans la réalité, les objets auront des id numériques et au lieu d'être instancié par le programme en dur, viendront de la bdd mais là l'objectif est de contrôler les contrôles justement
Donc mes tests se résument à comparer le retour d'une méthode avec la valeur que j'attends. Si c'est bon pas de soucis, si c'est faux je veux pour analyser identifier le delta. Facile si c'est un nombre plus compliqué quand c'est une collection
Typiquement, j'ai pour le cas qui nous concerne une centaine de cas tests (certains indiquant que oui l'objet est utilisable par le joueur, dans d'autres que non) et puis un dernier qui constitue la liste des messages d'erreur (soit pour les logs, soit pour les joueurs)
Je formate côté scripts de tests les résultats pour avoir quelque chose de lisible (var_dump c'est pas toujours sympa à lire) et ça me donne un beau message mais pour identifier d'un coup d oeil que c'est le 17eme message d erreur qui ne convient pas c'est déjà plus dur :[/quote]
si mon code trouve une anomalie (donc que le joueur soit triche, soit s'est planté, soit n'a plus l'objet parce qu un autre lui a piqué entre deux clics) je dois lui renvoyer un message
Pour le moment, mon controle provoque une alerte en cas de défaut :
if ($reason)
msg::AddMsg($reason, $this->MySystem()->GetId(), $idAction, $idConstraint, $line['idSystem'], $expected);
Je ne sais pas encore ce que fera msg et peut importe d'ailleurs, je ne développe que la couche métier. Simplement je stocke l'ensemble de ces messages sous forme de tableauxPour vérifier que mon algo tourne, j'instancie des objets des contraintes, etc.. pour construire une batterie de test. C'est pourquoi on peut voir en dessous "sol_bon8" pour un id d'un objet (qui est au sol, au bon endroit, dont le "type" est 8). Evidemment dans la réalité, les objets auront des id numériques et au lieu d'être instancié par le programme en dur, viendront de la bdd mais là l'objectif est de contrôler les contrôles justement
Donc mes tests se résument à comparer le retour d'une méthode avec la valeur que j'attends. Si c'est bon pas de soucis, si c'est faux je veux pour analyser identifier le delta. Facile si c'est un nombre plus compliqué quand c'est une collection
Typiquement, j'ai pour le cas qui nous concerne une centaine de cas tests (certains indiquant que oui l'objet est utilisable par le joueur, dans d'autres que non) et puis un dernier qui constitue la liste des messages d'erreur (soit pour les logs, soit pour les joueurs)
Je formate côté scripts de tests les résultats pour avoir quelque chose de lisible (var_dump c'est pas toujours sympa à lire) et ça me donne un beau message mais pour identifier d'un coup d oeil que c'est le 17eme message d erreur qui ne convient pas c'est déjà plus dur :[/quote]
Citation :0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40
0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40
0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>KNOWLEDGE_REJECT 1>sys_a 2>1 3>10 4>sol_coffre 5>10
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40
0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40
0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40
0>NOT_ENOUGH 1>sys_a 2>1 3>2 4>8 5>5
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>5 4>sol_ferme_8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>6 4>sol_mal8 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>7 4>sol_mal8f 5>8
0>WRONG_PLACE 1>sys_a 2>1 3>8 4>sol_mal8p 5>8
0>CLASS_REJECT 1>sys_a 2>1 3>9 4>item_a3 5>8
0>PORTER_REJECT 1>sys_a 2>1 3>11 4>item_b8 5>8
0>QUANTITY_REJECT 1>sys_a 2>1 3>3 4>sol_bon8 5>40