Die Datensätze `work.somedata1` und `work.somedata2` werden direkt im Skript über einen `DATA STEP` zu Testzwecken erstellt. Es werden keine externen Daten, die nicht vom Skript verwaltet werden, direkt für die Tests verwendet.
1 Codeblock
Webout-Makros und Makrodefinition
Erklärung : Dieser Block verwendet `parmcards4`, um eine Reihe von Befehlen zu übermitteln, die die Ausgabe eines Webservices konfigurieren. Die `%webout`-Makros verwalten das Abrufen (`FETCH`), Öffnen (`OPEN`), Erstellen von Objekten (`OBJ`) und Schließen (`CLOSE`) der Webausgabe. Ein internes Makro `x` ist definiert, um SAS-Tabellen oder Eingabedateien (`_webin_file_count`) zu durchlaufen und sie als Objekte in die Webausgabe aufzunehmen, wodurch die Datenstruktur vorbereitet wird, die vom Dienst ausgetauscht wird.
Erklärung : Dieser Block ruft das Makro `%mx_createwebservice` auf, um einen Webservice namens `sendObj` am durch `&mcTestAppLoc/services` definierten Speicherort zu erstellen oder bereitzustellen. Unmittelbar danach wird das Makro `%mp_assert` verwendet, um zu überprüfen, ob diese Erstellung fehlerfrei verlaufen ist (Systemrückkehrcode `&syscc=0`), wobei das Ergebnis in `work.test_results` gespeichert wird. Dies ist ein wesentlicher Konfigurations- und Überprüfungsschritt des Dienstes.
Kopiert!
%mx_createwebservice(path=&mcTestAppLoc/services,name=sendObj)
%mp_assert(
iftrue=(&syscc=0),
desc=No errors after service creation,
outds=work.test_results
)
Erklärung : Dieser `DATA STEP` erstellt zwei temporäre Datensätze, `work.somedata1` und `work.somedata2`. Jeder enthält eine einzige Beobachtung mit den Variablen `x` (numerisch), `y` (Zeichenkette mit Leerzeichen und escaped Anführungszeichen) und `z` (fehlender numerischer Wert). Die Variable `x` erhält das Label 'x factor'. Diese Datensätze dienen als Eingabedaten für den Webservice-Test.
Erklärung : Dieser Block führt das Makro `%mx_testservice` aus, um den Webservice `sendObj` zu testen. Die Datensätze `work.somedata1` und `work.somedata2` werden als Eingaben an den Dienst übergeben. Die Optionen `debug=log` und `mdebug=1` aktivieren ein detailliertes Debugging im SAS-Protokoll. Die vom Dienst verarbeiteten Ergebnisse werden in der Bibliothek `testlib1` gespeichert.
Erklärung : Dieser `DATA STEP` vom Typ `_NULL_` ist ein Überprüfungsschritt. Er liest den Datensatz `testlib1.somedata1`, der das Ergebnis der Webservice-Verarbeitung ist. Die Makrovariable `test1` wird auf `FAIL` initialisiert. Wenn die Werte der Variablen `x`, `y` und `z` den Erwartungen entsprechen (mit `z="Z"` für einen fehlenden Wert), wird `test1` auf `PASS` gesetzt. `putlog (_all_)(=)` zeigt den Inhalt der Beobachtung im Protokoll an, um die Überprüfung zu erleichtern.
Kopiert!
%let test1=FAIL;
data _null_;
set testlib1.somedata1;
if x=1 and y=' t"w"o' and z="Z" then call symputx('test1','PASS');
putlog (_all_)(=);
run;
1
%let test1=FAIL;
2
DATA _null_;
3
SET testlib1.somedata1;
4
IF x=1 and y=' t"w"o' and z="Z"THEN call symputx('test1','PASS');
5
putlog (_all_)(=);
6
RUN;
6 Codeblock
DATA STEP (Überprüfung)
Erklärung : Ähnlich wie im vorherigen Block überprüft dieser `DATA STEP` den Inhalt des Datensatzes `testlib1.somedata2` nach der Verarbeitung durch den Webservice. Die Makrovariable `test2` wird auf `PASS` aktualisiert, wenn die Werte der Variablen `x`, `y` und `z` den Erwartungen entsprechen, wodurch bestätigt wird, dass der Dienst diesen Datensatz korrekt verarbeitet hat.
Kopiert!
%let test2=FAIL;
data _null_;
set testlib1.somedata2;
if x=1 and y=' t"w"o' and z="Z" then call symputx('test2','PASS');
putlog (_all_)(=);
run;
1
%let test2=FAIL;
2
DATA _null_;
3
SET testlib1.somedata2;
4
IF x=1 and y=' t"w"o' and z="Z"THEN call symputx('test2','PASS');
5
putlog (_all_)(=);
6
RUN;
7 Codeblock
Makros mp_assert
Erklärung : Diese beiden abschließenden Aufrufe des Makros `%mp_assert` werden verwendet, um die globalen Testergebnisse zu validieren. Der erste überprüft, ob `test1` `PASS` ist, was die korrekte Verarbeitung von `somedata1` bestätigt. Der zweite macht dasselbe für `test2` und `somedata2`. Die Ergebnisse dieser Assertions werden im Datensatz `work.test_results` gespeichert, wodurch der Testbericht zentralisiert wird.
Kopiert!
%mp_assert(
iftrue=(&test1=PASS),
desc=somedata1 created correctly,
outds=work.test_results
)
%mp_assert(
iftrue=(&test2=PASS),
desc=somedata2 created correctly,
outds=work.test_results
)
1
%mp_assert(
2
iftrue=(&test1=PASS),
3
desc=somedata1 created correctly,
4
outds=work.test_results
5
)
6
%mp_assert(
7
iftrue=(&test2=PASS),
8
desc=somedata2 created correctly,
9
outds=work.test_results
10
)
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.