Dieses Programm führt eine Reihe von Unit-Tests durch: 1. Simulation einer eingehenden Webanfrage (FETCH) über Makrovariablen und Überprüfung der resultierenden Tabelle mittels `mp_assertdsobs`. 2. Generierung eines komplexen JSON-Streams (Arrays und Objekte) in eine temporäre physische Datei mittels `mv_webout`. 3. Erneutes Einlesen der generierten JSON-Datei mithilfe der `LIBNAME JSON` Engine, um die Integrität und Struktur der produzierten Daten zu validieren.
Datenanalyse
Type : CREATION_INTERNE
Alle Daten werden innerhalb des Skripts (DATA Step, Makrovariablen) simuliert oder durch die getesteten Makros generiert.
1 Codeblock
DATA STEP
Erklärung : Initialisierung der Testumgebung: Definition von Makrovariablen, die von einer Webanfrage empfangene Daten simulieren (SASjs-Format).
Kopiert!
data _null_;
call symputx('sasjs1data','area:$char4.'!!'0d0a'x!!'Adak');
call symputx('sasjs_tables','areas');
run;
%put &=sasjs1data;
Erklärung : Ausführung des Fetch-Makros (FETCH) und Assertion zur Validierung, dass die Tabelle 'work.areas' mit genau einer Beobachtung erstellt wurde.
Erklärung : Test der JSON-Ausgabegenerierung: Erstellung von Dummy-Daten und Schreiben in eine temporäre Datei über die Befehle OPEN, ARR (Array), OBJ (Object) und CLOSE von mv_webout.
Kopiert!
%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 Codeblock
DATA STEP
Erklärung : Validierung der erzeugten JSON-Datei: Anzeige des Rohinhalts im Log, Parsen über die LIBNAME JSON Engine und abschließende Assertion zum Vergleich der abgerufenen Werte.
Kopiert!
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
)
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.