Publié le :
Test Unitaire CREATION_INTERNE

Test de la macro ms_triggerstp

Ce code est également disponible en : Deutsch English
En attente de validation
Ce script crée dynamiquement deux fichiers SAS© temporaires agissant comme des processus stockés (STP) qui écrivent dans `_webout`. Il utilise ensuite la macro `ms_triggerstp` pour déclencher ces STPs et capturer les résultats d'exécution dans une table de travail (`work.mySessions`). Le script effectue une série d'assertions (via `mp_assert`, `mp_assertdsobs`, `mp_assertcols`) pour vérifier l'existence des résultats, le nombre d'observations, la structure des colonnes et la cohérence des données retournées. Enfin, il nettoie l'environnement en supprimant les fichiers créés.
Analyse des données

Type : CREATION_INTERNE


Le code des processus stockés est généré à la volée dans le script (Data Step _NULL_). Les données analysées sont les résultats de l'exécution de ces processus.

1 Bloc de code
DATA STEP
Explication :
Génération de deux fichiers temporaires contenant le code source SAS des processus stockés (STP) simulés pour le test.
Copié !
1filename stpcode1 temp;
2DATA _null_;
3 file stpcode1;
4 put '%put hello world;';
5 put '%put _all_;';
6 put 'data _null_; file _webout1; put "triggerstp test 1";run;';
7RUN;
8filename stpcode2 temp;
9/* ... creation stpcode2 ... */
2 Bloc de code
Macro Call
Explication :
Obtention de noms de fichiers uniques et création physique des fichiers .sas de test dans le répertoire `/sasjs/tests/` à partir du code généré précédemment.
Copié !
1%let fname1=%mf_getuniquename();
2%let fname2=%mf_getuniquename();
3 
4%ms_createfile(/sasjs/tests/&fname1..sas
5 ,inref=stpcode1
6 ,mdebug=1
7)
8%ms_createfile(/sasjs/tests/&fname2..sas
9 ,inref=stpcode2
10)
3 Bloc de code
Macro Call Data
Explication :
Exécution des processus stockés via `ms_triggerstp`. Les résultats sont consolidés dans `work.mySessions`. `mp_assertscope` surveille la pollution de l'environnement macro/global.
Copié !
1%mp_assertscope(SNAPSHOT)
2 %ms_triggerstp(/sasjs/tests/&fname1
3 ,debug=131
4 ,outds=work.mySessions
5 )
6 %ms_triggerstp(/sasjs/tests/&fname2
7 ,outds=work.mySessions
8 )
9%mp_assertscope(COMPARE...)
4 Bloc de code
Macro Call
Explication :
Validation des résultats : vérification que la table de sortie existe, contient exactement 2 observations et possède la colonne `sessionid`.
Copié !
1%mp_assert(iftrue=%str(%mf_existds(work.mySessions)=1)...)
2%mp_assertdsobs(work.mySessions, test=EQUALS 2...)
3%mp_assertcols(work.mySessions, cols=sessionid...)
5 Bloc de code
DATA STEP
Explication :
Analyse du contenu de la table de résultats pour s'assurer que `sessionID` n'est pas manquant, avec stockage du résultat dans une macro-variable pour l'assertion finale.
Copié !
1DATA _null_;
2 retain contentCheck 1;
3 SET work.mySessions END=last;
4 IF missing(sessionID) THEN contentCheck = 0;
5 IF last THEN DO;
6 call symputx("contentCheck",contentCheck,"l");
7 END;
8RUN;
6 Bloc de code
Macro Call
Explication :
Suppression des fichiers SAS temporaires créés pour le test afin de laisser le système propre.
Copié !
1%ms_deletefile(/sasjs/tests/&fname1..sas)
2%ms_deletefile(/sasjs/tests/&fname2..sas)
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.