Veröffentlicht am :
Général INTERNE_ERSTELLUNG

Sans titre

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses SAS©-Skript implementiert eine Reihe von Einheitstests für das Makro `mf_getuniquelibref`, das zur Generierung einzigartiger Libref-Namen entwickelt wurde. Es verwendet die Assertionsmakros des SASUnit-Frameworks (`%mp_assertscope` und `%mp_assert`). Das Skript beginnt mit dem Speichern des Status der Makroumgebung (`%mp_assertscope(SNAPSHOT)`), und testet dann die Erstellung gültiger Librefs mit Standardpräfixen ('lib', 'libref7'). Für jeden gültigen Fall wird der Libref der `work`-Bibliothek zugewiesen und `%mp_assert` verwendet, um zu bestätigen, dass der Vorgang ohne Systemfehler (`%syscc=0`) verlief. Eine Überprüfung der Makroumgebung (`%mp_assertscope(COMPARE)`) wird nach dem ersten gültigen Libref-Test durchgeführt. Im zweiten Teil testet das Skript Szenarien mit ungültigen Librefs: Präfixe, die länger als 8 Zeichen sind ('lib8char', 'invalidlib') oder Präfixe, die mit einer Ziffer beginnen ('8adlib'). Für diese Fälle wird `%mp_assert` verwendet, um sicherzustellen, dass das Makro `mf_getuniquelibref` 0 zurückgibt, was einen Fehlschlag bei der Generierung des Librefs anzeigt. Alle Assertionsergebnisse werden in der Tabelle `work.test_results` protokolliert.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Das Skript verarbeitet keine externen Daten oder Daten aus Standard-SAS-Bibliotheken wie SASHELP. Es arbeitet mit der Erstellung und Zuweisung temporärer Librefs an die `work`-Bibliothek. Die Testergebnisse werden in der Tabelle `work.test_results` gespeichert, die während der Ausführung des Skripts dynamisch generiert wird.

1 Codeblock
SASUnit Makro-Aufrufe Data
Erklärung :
Dieser Block führt Tests für gültige Librefs durch. Er initialisiert einen Snapshot der Umgebung und verwendet dann `mf_getuniquelibref`, um zwei eindeutige Librefs ('libshort' und 'lib7') mit gültigen Präfixen zu erstellen. Jeder Libref wird anschließend der `work`-Bibliothek zugewiesen. Assertions über `%mp_assert` werden verwendet, um zu überprüfen, ob die Zuweisung (`LIBNAME`) ohne Fehler (`%syscc=0`) erfolgte, und die Ergebnisse werden in `work.test_results` gespeichert.
Kopiert!
1/* check valid libs */
2%mp_assertscope(SNAPSHOT)
3%let libshort=%mf_getuniquelibref(prefix=lib);
4%mp_assertscope(COMPARE,ignorelist=LIBSHORT)
5LIBNAME &libshort (work);
6%mp_assert(
7 iftrue=(&syscc=0),
8 desc=Checking for valid libref &libshort,
9 outds=work.test_results
10)
11 
12%let lib7=%mf_getuniquelibref(prefix=libref7);
13LIBNAME &lib7 (work);
14%mp_assert(
15 iftrue=(&syscc=0),
16 desc=Checking for valid libref &lib7,
17 outds=work.test_results
18)
2 Codeblock
SASUnit Makro-Aufrufe Data
Erklärung :
Dieser Block testet Fälle, in denen `mf_getuniquelibref` fehlschlagen sollte. Er versucht, Librefs mit ungültigen Präfixen zu generieren: 'lib8char' und 'invalidlib' (mehr als 8 Zeichen) und '8adlib' (beginnend mit einer Ziffer). Für jeden Test überprüft `%mp_assert`, ob das Makro den Wert 0 zurückgibt, was anzeigt, dass kein gültiger Libref erstellt werden konnte, und zeichnet diese erwarteten Fehler in `work.test_results` auf.
Kopiert!
1/* check for invalid libs */
2 
3%let lib8=%mf_getuniquelibref(prefix=lib8char);
4%mp_assert(
5 iftrue=(&lib8=0),
6 desc=Invalid prefix (8 chars),
7 outds=work.test_results
8)
9 
10%let liblong=%mf_getuniquelibref(prefix=invalidlib);
11%mp_assert(
12 iftrue=(&liblong=0),
13 desc=Checking for invalid libref (long),
14 outds=work.test_results
15)
16 
17%let badlib=%mf_getuniquelibref(prefix=8adlib);
18%mp_assert(
19 iftrue=(&badlib=0),
20 desc=Checking for invalid libref (8adlib),
21 outds=work.test_results
22)
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 This file is part of SASUnit, the Unit testing framework for SAS(R) programs. For copyright information and terms of usage under the GNU Lesser General Public License see included file README.md or https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.