Veröffentlicht am :
Test INTERNE_ERSTELLUNG

Test der Makro mfs_httpheader

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert einen temporären Speicherort (`header.txt` in der Bibliothek `WORK`), damit das Makro `%mfs_httpheader` dort HTTP-Header schreiben kann. Es verwendet das Makro `%mp_assertscope`, um den Ausführungskontext zu verwalten und Snapshots zu erstellen. Das Makro `%mfs_httpheader` wird zweimal mit unterschiedlichen Werten für den 'Content-Type' aufgerufen. Nach jedem Aufruf wird ein `DATA _NULL_` verwendet, um den Inhalt der temporären Datei zu lesen. Die Makros `%mp_assert` werden dann eingesetzt, um zu überprüfen, ob die Ausführung fehlerfrei verlief (`&syscc=0`) und ob die in die Datei geschriebenen Zeilen den erwarteten Headern entsprechen. Schließlich wird der ursprüngliche Speicherort des Headers wiederhergestellt, um eine ordnungsgemäße Bereinigung der Testumgebung zu gewährleisten. Dieses Skript implementiert Unit-Test-Prinzipien für das Makro `mfs_httpheader` in einer SAS©-Umgebung.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Die Daten (HTTP-Header) werden vom Makro `%mfs_httpheader` generiert, das sie in eine temporäre Datei (`header.txt`) innerhalb der `WORK`-Bibliothek schreibt. Das Skript liest dann diese Datei, um ihren Inhalt zu überprüfen. Es werden keine externen persistenten Datenquellen verwendet.

1 Codeblock
MACRO CALLS and DATA STEP Data
Erklärung :
Dieser Block initialisiert den Speicherort der Header-Datei (`sasjs_stpsrv_header_loc`) zu einem temporären Pfad in der `WORK`-Bibliothek. Er verwendet `%mp_assertscope`, um einen Referenzpunkt zu markieren, bevor `%mfs_httpheader` aufgerufen wird, um den Header 'Content-Type: application/csv' zu schreiben. Ein `DATA _NULL_` wird dann verwendet, um die erste Zeile dieser Datei zu lesen und ihren Inhalt in der Makrovariable `test1` zu speichern. Schließlich überprüfen zwei Zusicherungen mit `%mp_assert`, ob die Ausführung fehlerfrei verlief (`&syscc=0`) und ob der geschriebene Header korrekt ist.
Kopiert!
1%let orig_sasjs_stpsrv_header_loc=&sasjs_stpsrv_header_loc;
2%let sasjs_stpsrv_header_loc=%sysfunc(pathname(work))/header.txt;
3 
4%mp_assertscope(SNAPSHOT)
5%mfs_httpheader(Content-Type,application/csv)
6%mp_assertscope(COMPARE,ignorelist=sasjs_stpsrv_header_loc)
7 
8DATA _null_;
9 INFILE "&sasjs_stpsrv_header_loc";
10 INPUT;
11 IF _n_=1 THEN call symputx('test1',_infile_);
12RUN;
13 
14%mp_assert(
15 iftrue=(&syscc=0),
16 desc=Check code ran without errors,
17 outds=work.test_results
18)
19%mp_assert(
20 iftrue=("&test1"="Content-Type: application/csv"),
21 desc=Checking line was created,
22 outds=work.test_results
23)
2 Codeblock
MACRO CALLS and DATA STEP Data
Erklärung :
Dieser zweite Testblock wiederholt den Prozess, indem er `%mfs_httpheader` mit 'Content-Type: application/text' aufruft. Ein `DATA _NULL_` liest die zweite Zeile der Header-Datei und ihr Inhalt wird in `test2` gespeichert. Zwei Zusicherungen werden durchgeführt, um die Ausführung und den Inhalt des aktualisierten Headers zu validieren. Der Block endet mit der Zurücksetzung der Variable `sasjs_stpsrv_header_loc` auf ihren ursprünglichen Wert, um die Umgebung für zukünftige Ausführungen oder weitere Tests zu bereinigen.
Kopiert!
1%mfs_httpheader(Content-Type,application/text)
2%let test2=0;
3DATA _null_;
4 INFILE "&sasjs_stpsrv_header_loc";
5 INPUT;
6 IF _n_=2 THEN call symputx('test2',_infile_);
7RUN;
8 
9%mp_assert(
10 iftrue=(&syscc=0),
11 desc=Check code ran without errors for test2,
12 outds=work.test_results
13)
14%mp_assert(
15 iftrue=("&test2"="Content-Type: application/text"),
16 desc=Checking line was created,
17 outds=work.test_results
18)
19 
20/* reset header so the test will pass */
21%let sasjs_stpsrv_header_loc=&orig_sasjs_stpsrv_header_loc;
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.
Urheberrechtsinformationen : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Diese Datei ist Teil von SASUnit, dem Unit-Test-Framework für SAS(R)-Programme. Informationen zu Copyright und Nutzungsbedingungen unter der GNU Lesser General Public License finden Sie in der beigefügten Datei README.md oder unter https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.