Tests automatisés des Server Scripts
But
Les tests automatisés valident la logique métier des Cloud Scripts sans passer par l'UI Unity. Ils servent surtout à protéger les moteurs complexes By Module : création des données, bills, answer key, grading, inventaire et factories.
Emplacement
Les tests se trouvent sous node.js/backend/braincloud/tests/.
| Dossier | Ce qui est testé |
|---|---|
unit/by_module_tests/answer_key_tests/ | Génération des bonnes réponses, fonctions auxiliaires, petty cash. |
unit/by_module_tests/bills_tests/ | Création et utilitaires des bills. |
unit/by_module_tests/classes_tests/ | Classes métier comme l'inventaire. |
unit/by_module_tests/create_module_type_data_tests/ | Génération initiale du Module Type Data. |
unit/by_module_tests/factories_tests/ | Factories serveur, notamment BillFactory. |
unit/by_module_tests/grade_module_tests/ | Correction, états financiers, formulaires fiscaux et modules spécialisés. |
Infrastructure de test
tests/lib/test_base.js: base commune;tests/lib/unit_test_core.js: orchestration des tests;tests/utils/test_data.js: helpers/données de test;tests/data/: fixtures (companies, conditions, employees, partners, products, salaries, services);tests/utils/billtypedata.jsonetreference.json: références utilisées par les suites.
Quand ajouter un test
Ajouter ou modifier un test dès qu'un changement touche une fonction pure ou déterministe du moteur serveur. Les zones à protéger en priorité sont :
- nouveau type de bill;
- nouvelle règle d'answer key;
- nouvelle règle de grading;
- modification de création du Module Type Data;
- modification d'inventaire ou de calcul qui influence plusieurs pages;
- nouvelle factory ou branche de factory.
Stratégie
flowchart LR
CHANGE[Changement métier] --> UNIT[Test ciblé]
UNIT --> EDGE[Cas limites]
EDGE --> REG[Régression du module]
REG --> DEBUG[Debug local si le problème dépend de documents réels]
Tests vs debug local
Les tests automatisés ne remplacent pas Debug local des Server Scripts BrainCloud. Un test unitaire valide une fonction avec des fixtures contrôlées; le debug local permet d'exécuter un vrai Cloud Script avec des documents issus de MongoDB ou récupérés depuis BrainCloud.