Veröffentlicht am :
Test CREATION_INTERNE

Unit-Tests für das Makro mp_makedata

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, um sicherzustellen, dass das Makro `%mp_makedata` korrekt funktioniert. Es erstellt Tabellen mit spezifischen Einschränkungen (Primärschlüssel, nicht-null-Werte) über `PROC SQL`, füllt diese Tabellen mit Hilfe des Makros und verwendet dann `%mp_assert` und `DATA _NULL_` Schritte, um die Anzahl der Beobachtungen, die Datenintegrität (Stringlänge) und die Fehlerbehandlung zu überprüfen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden dynamisch durch das Makro `%mp_makedata` generiert, basierend auf der Struktur der im Skript definierten Tabellen (work.example, work.example2).

1 Codeblock
PROC SQL Data
Erklärung :
Definition der Struktur der Testtabelle `work.example` mit Integritätsbeschränkungen, gefolgt von der Generierung von 500 Testbeobachtungen über `%mp_makedata`.
Kopiert!
1PROC SQL;
2create TABLE work.example(
3 TX_FROM float FORMAT=datetime19.,
4 DD_TYPE char(16),
5 DD_SOURCE char(2048),
6 DD_SHORTDESC char(256),
7 constraint pk primary key(tx_from, dd_type,dd_source),
8 constraint nnn not null(DD_SHORTDESC)
9);
10%mp_makedata(work.example,obs=500)
2 Codeblock
MACRO CALL
Erklärung :
Überprüfung mittels `%mp_assert`, dass die Anzahl der Beobachtungen in der erstellten Tabelle genau 500 beträgt, unter Verwendung des Hilfsmakros `%mf_nobs`.
Kopiert!
1%mp_assert(
2 iftrue=("%mf_nobs(work.example)"="500"),
3 desc=Check that 500 rows were created,
4 outds=work.test_results
5)
3 Codeblock
DATA STEP
Erklärung :
Technischer Daten-Schritt, um die Länge der Variable `dd_source` der ersten Beobachtung abzurufen und diese für spätere Assertion in der Makrovariable `lenvar` zu speichern.
Kopiert!
1DATA _null_;
2 SET work.example;
3 call symputx('lenvar',LENGTH(dd_source));
4 stop;
5RUN;
4 Codeblock
MACRO CALL
Erklärung :
Assertion, die überprüft, dass die Variable `dd_source` über ihre gesamte deklarierte Länge (2048 Zeichen) gefüllt wurde.
Kopiert!
1%mp_assert(
2 iftrue=("&lenvar"="2048"),
3 desc=Check that entire LENGTH of variable is populated,
4 outds=work.test_results
5)
5 Codeblock
PROC SQL Data
Erklärung :
Erstellung einer zweiten Tabelle `work.example2` ohne Primärschlüsselbeschränkungen, um das Standardverhalten der Datengenerierung zu testen.
Kopiert!
1PROC SQL;
2create TABLE work.example2(
3 TX_FROM float FORMAT=datetime19.,
4 DD_TYPE char(16),
5 DD_SOURCE char(2048),
6 DD_SHORTDESC char(256),
7 some_num num
8);
9%mp_makedata(work.example2)
6 Codeblock
MACRO CALL
Erklärung :
Abschließende Überprüfung, dass die Ausführung für die Tabelle ohne Schlüssel fehlerfrei (`&syscc=0`) verlaufen ist.
Kopiert!
1%mp_assert(
2 iftrue=(&syscc=0),
3 desc=Ensure tables without keys still generate,
4 outds=work.test_results
5)
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.