Ce programme effectue une série de tests unitaires : 1. Simulation d'une requête web entrante (FETCH) via des macro-variables et vérification de la table résultante via `mp_assertdsobs`. 2. Génération d'un flux JSON complexe (Tableaux et Objets) vers un fichier physique temporaire via `mv_webout`. 3. Relecture du fichier JSON généré à l'aide du moteur `LIBNAME JSON` pour valider l'intégrité et la structure des données produites.
Analyse des données
Type : CREATION_INTERNE
Toutes les données sont simulées au sein du script (étape DATA, macro-variables) ou générées par les macros testées.
1 Bloc de code
DATA STEP
Explication : Initialisation de l'environnement de test : définition de macro-variables simulant des données reçues d'une requête web (format SASjs).
Copié !
data _null_;
call symputx('sasjs1data','area:$char4.'!!'0d0a'x!!'Adak');
call symputx('sasjs_tables','areas');
run;
%put &=sasjs1data;
Explication : Exécution de la macro de récupération (FETCH) et assertion pour valider que la table 'work.areas' a été créée avec exactement une observation.
Explication : Test de génération de sortie JSON : création de données fictives et écriture dans un fichier temporaire via les commandes OPEN, ARR (Array), OBJ (Object) et CLOSE de mv_webout.
Copié !
%let fref=%mf_getuniquefileref();
%global _metaperson;
data some datasets;
x=1;
run;
%mv_webout(OPEN,fref=&fref,stream=N)
%mv_webout(ARR,some,fref=&fref,stream=N)
%mv_webout(OBJ,datasets,fref=&fref,stream=N)
%mv_webout(CLOSE,fref=&fref,stream=N)
1
%let fref=%mf_getuniquefileref();
2
%global _metaperson;
3
DATA some datasets;
4
x=1;
5
RUN;
6
%mv_webout(OPEN,fref=&fref,stream=N)
7
%mv_webout(ARR,some,fref=&fref,stream=N)
8
%mv_webout(OBJ,datasets,fref=&fref,stream=N)
9
%mv_webout(CLOSE,fref=&fref,stream=N)
4 Bloc de code
DATA STEP
Explication : Validation du fichier JSON produit : affichage du contenu brut dans la log, parsing via le moteur LIBNAME JSON, et assertion finale pour comparer les valeurs récupérées.
Copié !
data _null_;
infile &fref;
input;
putlog _infile_;
run;
libname test JSON (&fref);
data root;
set test.root;
call symputx('checkval',sysvlong);
run;
data alldata;
set test.alldata;
run;
%mp_assert(
iftrue=(%str(&checkval)=%str(&sysvlong)),
desc=Check if the sysvlong value was created
)
1
DATA _null_;
2
INFILE &fref;
3
INPUT;
4
putlog _infile_;
5
RUN;
6
7
LIBNAME test JSON (&fref);
8
DATA root;
9
SET test.root;
10
call symputx('checkval',sysvlong);
11
RUN;
12
DATA alldata;
13
SET test.alldata;
14
RUN;
15
16
%mp_assert(
17
iftrue=(%str(&checkval)=%str(&sysvlong)),
18
desc=Check IF the sysvlong value was created
19
)
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.