Publicado el :
Prueba Unitaria CREACION_INTERNA

Prueba Unitaria de las macros SASjs mv_webout y mp_assert

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa realiza una serie de pruebas unitarias:
1. Simulación de una solicitud web entrante (FETCH) a través de macrovariables y verificación de la tabla resultante mediante `mp_assertdsobs`.
2. Generación de un flujo JSON complejo (Matrices y Objetos) a un archivo físico temporal mediante `mv_webout`.
3. Relectura del archivo JSON generado usando el motor `LIBNAME JSON` para validar la integridad y estructura de los datos producidos.
Análisis de datos

Type : CREACION_INTERNA


Todos los datos se simulan dentro del script (paso DATA, macrovariables) o son generados por las macros probadas.

1 Bloque de código
DATA STEP
Explicación :
Inicialización del entorno de prueba: definición de macrovariables que simulan datos recibidos de una solicitud web (formato SASjs).
¡Copiado!
1DATA _null_;
2 call symputx('sasjs1data','area:$char4.'!!'0d0a'x!!'Adak');
3 call symputx('sasjs_tables','areas');
4RUN;
5%put &=sasjs1data;
2 Bloque de código
MACRO CALL Data
¡Copiado!
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 Bloque de código
MACRO CALL Data
¡Copiado!
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 Bloque de código
DATA STEP
¡Copiado!
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)
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.