|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires du mode de jeu : l'ordre des passes du pas fixe (EX-ARCH-002, LOT-05). More...
#include <algorithm>#include <string>#include <vector>#include <gtest/gtest.h>#include "Core/Levels/LevelOutcome.h"#include "Core/Physics/PlayerInput.h"#include "HMI/Game/CombatMode.h"#include "HMI/Game/ExplorationMode.h"#include "HMI/Game/IGameMode.h"Functions | |
| TEST (ModeDeJeuTest, OrdreAppeleIdentiqueALOrdreAnnonce) | |
| L'ordre réellement appelé par le mode d'exploration est exactement celui qu'il annonce pour les diagnostics (EX-ARCH-002). | |
| TEST (ModeDeJeuTest, SequenceStableSur600Pas) | |
| L'ordre des passes ne dépend ni du pas ni de l'intention d'entrée : 600 pas produisent 600 fois la même séquence (EX-ARCH-002). | |
| TEST (ModeDeJeuTest, EchecDeclencheSesConsequencesApresLEvaluation) | |
| Sur un échec, les conséquences (éclatement, secousse, rechargement) sont une passe à part, appelée après l'évaluation de l'issue (EX-ARCH-002). | |
| TEST (ModeDeJeuTest, ReussiteNeDeclenchePasLesConsequencesDUnEchec) | |
| Une réussite ne déclenche pas les conséquences d'un échec : l'appelant décide quoi faire d'un niveau gagné (EX-ARCH-002). | |
| TEST (ModeDeJeuTest, ModeSansEtatEtNomme) | |
| Le mode d'exploration est sans état : ses crochets de bascule n'appellent aucune passe, et il se nomme pour les diagnostics (EX-ARCH-002). | |
| TEST (ModeDeJeuTest, LeModeCombatGeleLeMonde) | |
| Le mode combat gèle le monde : ni déplacement libre, ni mécanismes, ni évaluation d'issue de niveau — et l'ordre appelé reste celui qu'il annonce. | |
| TEST (ModeDeJeuTest, LeModeCombatEstNommeEtSansEtat) | |
| Le mode combat se nomme, et ne garde aucun état d'un pas à l'autre. | |
Tests unitaires du mode de jeu : l'ordre des passes du pas fixe (EX-ARCH-002, LOT-05).
hmi::GameSession exige un atlas, un lot de sprites et une police : impossible à instancier sans fenêtre. C'est précisément ce que l'extraction corrige — l'ordre des passes vit désormais dans un objet qui ne parle que de core::, et se vérifie contre une implémentation d'essai qui enregistre la séquence des appels sans rien simuler.
| TEST | ( | ModeDeJeuTest | , |
| EchecDeclencheSesConsequencesApresLEvaluation | ) |
Sur un échec, les conséquences (éclatement, secousse, rechargement) sont une passe à part, appelée après l'évaluation de l'issue (EX-ARCH-002).
Cas de test : Un echec declenche ses consequences apres l'evaluation.
Categorie : Unitaire · Mode de jeu
Criticite : Majeur
Etapes :
1. Avancer le mode d'un pas sur des passes qui repondent Lost a l'evaluation.
Resultat attendu : onLevelLost est la derniere passe appelee, juste apres evaluateOutcome.
| TEST | ( | ModeDeJeuTest | , |
| LeModeCombatEstNommeEtSansEtat | ) |
Le mode combat se nomme, et ne garde aucun état d'un pas à l'autre.
Cas de test : Le mode combat est nomme et sans etat.
cat Unitaire · Mode de jeu
crit Mineur
etapes 1. Avancer deux instances distinctes du mode d'un meme pas.
attendu Les deux produisent la meme sequence, et le mode porte un nom distinct de l'exploration.
| TEST | ( | ModeDeJeuTest | , |
| LeModeCombatGeleLeMonde | ) |
Le mode combat gèle le monde : ni déplacement libre, ni mécanismes, ni évaluation d'issue de niveau — et l'ordre appelé reste celui qu'il annonce.
Cas de test : Le mode combat gele le monde.
cat Unitaire · Mode de jeu
crit Critique
etapes 1. Avancer le mode combat d'un pas fixe sur des passes qui enregistrent leurs appels.
2. Comparer la sequence a passOrder().
3. Verifier l'absence des passes d'exploration.
attendu moveCharacter, updateMechanisms, detectEvents et evaluateOutcome ne sont jamais appeles, et l'issue rendue est Playing.
| TEST | ( | ModeDeJeuTest | , |
| ModeSansEtatEtNomme | ) |
Le mode d'exploration est sans état : ses crochets de bascule n'appellent aucune passe, et il se nomme pour les diagnostics (EX-ARCH-002).
Cas de test : Le mode d'exploration est sans etat et se nomme.
Categorie : Unitaire · Mode de jeu
Criticite : Mineur
Etapes :
1. Charger puis decharger le mode.
Resultat attendu : Aucune passe appelee, et le mode se nomme 'exploration'.
| TEST | ( | ModeDeJeuTest | , |
| OrdreAppeleIdentiqueALOrdreAnnonce | ) |
L'ordre réellement appelé par le mode d'exploration est exactement celui qu'il annonce pour les diagnostics (EX-ARCH-002).
Cas de test : L'ordre des passes appele est celui annonce.
Categorie : Unitaire · Mode de jeu
Criticite : Majeur
Etapes :
1. Avancer le mode d'exploration d'un pas fixe sur des passes qui enregistrent leurs appels.
2. Comparer la sequence enregistree a passOrder().
Resultat attendu : Les deux listes sont identiques, dans le meme ordre.
| TEST | ( | ModeDeJeuTest | , |
| ReussiteNeDeclenchePasLesConsequencesDUnEchec | ) |
Une réussite ne déclenche pas les conséquences d'un échec : l'appelant décide quoi faire d'un niveau gagné (EX-ARCH-002).
Cas de test : Une reussite ne declenche pas les consequences d'un echec.
Categorie : Unitaire · Mode de jeu
Criticite : Majeur
Etapes :
1. Avancer le mode d'un pas sur des passes qui repondent Won a l'evaluation.
Resultat attendu : onLevelLost n'est jamais appele, et la sequence est celle annoncee.
| TEST | ( | ModeDeJeuTest | , |
| SequenceStableSur600Pas | ) |
L'ordre des passes ne dépend ni du pas ni de l'intention d'entrée : 600 pas produisent 600 fois la même séquence (EX-ARCH-002).
Cas de test : 600 pas produisent 600 fois la meme sequence de passes.
Categorie : Unitaire · Mode de jeu
Criticite : Majeur
Etapes :
1. Avancer le mode de 600 pas fixes, avec une intention qui change a chaque pas.
2. Comparer la sequence de chaque pas a celle du premier.
Resultat attendu : Les 600 sequences sont identiques.