Skip to main content

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/.

DossierCe 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.json et reference.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.