Veröffentlicht am :
Unit-Test CREATION_INTERNE

Unit-Test der SASjs Makros mv_webout und mp_assert

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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!
1DATA _null_;
2 call symputx('sasjs1data','area:$char4.'!!'0d0a'x!!'Adak');
3 call symputx('sasjs_tables','areas');
4RUN;
5%put &=sasjs1data;
2 Codeblock
MACRO CALL Data
Erklärung :
Ausführung des Fetch-Makros (FETCH) und Assertion zur Validierung, dass die Tabelle 'work.areas' mit genau einer Beobachtung erstellt wurde.
Kopiert!
1%mv_webout(FETCH)
2 
3%mp_assertdsobs(work.areas,
4 desc=Test INPUT TABLE has 1 row,
5 test=EQUALS 1,
6 outds=work.test_results
7)
3 Codeblock
MACRO CALL Data
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!
1%let fref=%mf_getuniquefileref();
2%global _metaperson;
3DATA some datasets;
4 x=1;
5RUN;
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!
1DATA _null_;
2 INFILE &fref;
3 INPUT;
4 putlog _infile_;
5RUN;
6 
7LIBNAME test JSON (&fref);
8DATA root;
9 SET test.root;
10 call symputx('checkval',sysvlong);
11RUN;
12DATA alldata;
13 SET test.alldata;
14RUN;
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.