|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests de la fiche de personnage (LOT-13). More...
#include <array>#include <filesystem>#include <string>#include <vector>#include <gtest/gtest.h>#include "Core/Ecs/Components/RpgActor.h"#include "Core/Rpg/CharacterOptions.h"#include "Core/Rpg/CharacterSheet.h"#include "Core/Rpg/Scale.h"#include "Core/Rpg/Skill.h"Functions | |
| TEST (CharacterSheetTest, LesTablesDeReglesSeChargent) | |
| Les catalogues et les deux tables de regles se chargent. | |
| TEST (CharacterSheetTest, QuatreFichesIndependantes) | |
| Quatre fiches independantes coexistent sans se connaitre. | |
| TEST (CharacterSheetTest, TroisClassesDonnentLesBonsModificateurs) | |
| Trois classes JSON donnent les bons modificateurs. | |
| TEST (CharacterSheetTest, LaMonteeDeNiveauEstTesteeAuxBornes) | |
| La montee de niveau est testee aux bornes : seuil exact, depassement, multi-niveaux. | |
| TEST (CharacterSheetTest, LaMonteeDeNiveauEstReproductible) | |
| Deux montees successives donnent le meme resultat qu'une seule du meme total. | |
| TEST (CharacterSheetTest, LeModificateurDeCompetenceVientDuCatalogue) | |
| Le modificateur de competence vient du catalogue, pas d'un switch. | |
| TEST (CharacterSheetTest, LaVitesseSeLitEnCases) | |
| La vitesse de la fiche se convertit en cases avec l'echelle du LOT-12. | |
| TEST (CharacterSheetTest, LeComposantDistingueLAbsenceDeFiche) | |
| Le composant ECS distingue une entite sans fiche d'une entite liee a la premiere. | |
| TEST (CharacterSheetTest, AucuneValeurDeRegleNEstEcriteDansLeCpp) | |
| Aucune valeur de regle n'est ecrite dans le C++ du lot. | |
Tests de la fiche de personnage (LOT-13).
L'acceptation du lot tient en quatre phrases : trois classes definies en JSON se chargent et donnent les bons modificateurs ; la montee de niveau est reproductible et testee AUX BORNES ; aucune valeur de regle n'est codee en dur ; et un test construit QUATRE fiches independantes, parce que rien ne doit supposer l'unicite du personnage.
| TEST | ( | CharacterSheetTest | , |
| AucuneValeurDeRegleNEstEcriteDansLeCpp | ) |
Aucune valeur de regle n'est ecrite dans le C++ du lot.
Cas de test : La classe d'armure sans armure et le plafond de caracteristique viennent de la donnee.
Categorie : Unitaire · Fiche de personnage
Criticite : Critique
Etapes :
1. Lire les deux constantes dans rules/character-creation.json.
| TEST | ( | CharacterSheetTest | , |
| LaMonteeDeNiveauEstReproductible | ) |
Deux montees successives donnent le meme resultat qu'une seule du meme total.
Cas de test : La montee de niveau est reproductible : le chemin ne change pas le resultat.
Categorie : Unitaire · Fiche de personnage
Criticite : Majeur
Etapes :
1. Donner le seuil du niveau 5 en une fois a une fiche, en deux fois a une autre.
Resultat attendu : Meme niveau, memes points de vie, meme total d'experience.
| TEST | ( | CharacterSheetTest | , |
| LaMonteeDeNiveauEstTesteeAuxBornes | ) |
La montee de niveau est testee aux bornes : seuil exact, depassement, multi-niveaux.
Cas de test : La montee de niveau franchit le seuil exact, le depassement et plusieurs niveaux d'un coup.
Categorie : Unitaire · Fiche de personnage
Criticite : Critique
Etapes :
1. Donner exactement le seuil du niveau 2, puis un point de moins, puis le seuil du niveau 5 d'un coup.
Resultat attendu : Le seuil exact fait monter ; un point de moins ne fait pas monter ; le seuil du niveau 5 fait passer directement au niveau 5.
| TEST | ( | CharacterSheetTest | , |
| LaVitesseSeLitEnCases | ) |
La vitesse de la fiche se convertit en cases avec l'echelle du LOT-12.
Cas de test : La vitesse d'un personnage se lit en cases via l'echelle unique du projet.
Categorie : Unitaire · Fiche de personnage
Criticite : Majeur
Etapes :
1. Convertir la vitesse d'un nain (7,50 m) et d'un humain (9 m) en cases.
Resultat attendu : 5 et 6 cases, via core::tilesFromMeters et non une division ecrite sur place.
| TEST | ( | CharacterSheetTest | , |
| LeComposantDistingueLAbsenceDeFiche | ) |
Le composant ECS distingue une entite sans fiche d'une entite liee a la premiere.
Cas de test : Une entite sans fiche ne se confond pas avec une entite liee a la fiche zero.
Categorie : Unitaire · Fiche de personnage
Criticite : Majeur
Etapes :
1. Construire un RpgActor par defaut, puis un lie a l'indice 0.
Resultat attendu : Le premier n'a pas de fiche, le second en a une.
| TEST | ( | CharacterSheetTest | , |
| LeModificateurDeCompetenceVientDuCatalogue | ) |
Le modificateur de competence vient du catalogue, pas d'un switch.
Cas de test : Un jet de competence emploie la caracteristique que le catalogue lui donne.
Categorie : Unitaire · Fiche de personnage
Criticite : Majeur
Etapes :
1. Calculer le modificateur d'une competence maitrisee et d'une autre non maitrisee.
| TEST | ( | CharacterSheetTest | , |
| LesTablesDeReglesSeChargent | ) |
Les catalogues et les deux tables de regles se chargent.
Cas de test : La table d'experience et les constantes de creation se chargent depuis la donnee.
Categorie : Unitaire · Fiche de personnage
Criticite : Critique
Etapes :
1. Charger rules/experience.json et rules/character-creation.json.
Resultat attendu : Vingt niveaux, seuils strictement croissants, et les deux constantes lues.
| TEST | ( | CharacterSheetTest | , |
| QuatreFichesIndependantes | ) |
Quatre fiches independantes coexistent sans se connaitre.
Cas de test : Quatre fiches de personnage coexistent, chacune avec ses propres valeurs.
Categorie : Unitaire · Fiche de personnage
Criticite : Critique
Etapes :
1. Construire quatre fiches d'especes et de classes differentes.
| TEST | ( | CharacterSheetTest | , |
| TroisClassesDonnentLesBonsModificateurs | ) |
Trois classes JSON donnent les bons modificateurs.
Cas de test : Trois classes chargees depuis JSON produisent les bons points de vie et jets de sauvegarde.
Categorie : Unitaire · Fiche de personnage
Criticite : Critique
Etapes :
1. Construire une fiche pour le brawler (d12), le mage (d6) et le priest (d8).