Pruebas unitarias de la macro mp_replace

ATTENTION : Ce contenu est DÉSACTIVÉ. Il est invisible pour les visiteurs.
Nivel de dificultad
Principiante
Publicado el :
Este programa ejecuta una serie de pruebas unitarias para validar el funcionamiento de la macro `%mp_replace`. Crea dinámicamente archivos de texto con contenidos específicos (cadenas simples, espacios finales, puntos), invoca la macro para realizar reemplazos y luego lee los archivos modificados para comparar los resultados esperados con los resultados obtenidos utilizando las macros `%mp_assert` y `%mp_assertscope`.
Análisis de datos

Type : CREATION_INTERNE


Los datos (archivos de texto) se generan sobre la marcha mediante pasos DATA _NULL_ que utilizan la instrucción FILE.

1 Bloque de código
DATA STEP Data
Explicación :
Inicialización del primer caso de prueba: definición de cadenas y creación de un archivo de texto que contiene el objetivo.
¡Copiado!
1%let test1="&sasjswork/file.txt";
2%let str=replace/me;
3%let rep=with/this;
4DATA _null_;
5 file &test1;
6 put 'blahblah';
7 put "blahblah&str.blah";
8 put 'blahblahblah';
9RUN;
2 Bloque de código
MACRO CALL
Explicación :
Ejecución de la macro de reemplazo `%mp_replace`. `%mp_assertscope` se utiliza para garantizar que la macro no cree variables parásitas en el entorno global.
¡Copiado!
1%mp_assertscope(SNAPSHOT)
2%mp_replace(&test1, findvar=str, replacevar=rep)
3%mp_assertscope(COMPARE)
3 Bloque de código
MACRO CALL
Explicación :
Lectura del resultado del archivo y validación del reemplazo mediante la macro de aserción `%mp_assert`.
¡Copiado!
1DATA _null_;
2 INFILE &test1;
3 INPUT;
4 IF _n_=2 THEN call symputx('test1result',_infile_);
5RUN;
6 
7%mp_assert(
8 iftrue=("&test1result" = "blahblah&rep.blah"),
9 desc=Checking first replace,
10 outds=work.test_results
11)
4 Bloque de código
DATA STEP Data
Explicación :
Creación del segundo caso de prueba: manejo de cadenas que contienen espacios finales.
¡Copiado!
1%let test2="&sasjswork/file2.txt";
2%let str=%str(replacewith trailing spaces );
3%let rep=%str( with more spaces );
4DATA _null_;
5 file &test2 lrecl=500;
6 put 'blahblah';
7 put "blahblah&str.blah&str. replace &str.X";
8 put "blahbreplacewith&str.spacesahblah";
9RUN;
5 Bloque de código
MACRO CALL
Explicación :
Ejecución del reemplazo y verificación de que los espacios se han tratado correctamente.
¡Copiado!
1%mp_replace(&test2, findvar=str, replacevar=rep)
2 
3DATA _null_;
4 INFILE &test2 lrecl=500;
5 INPUT;
6 IF _n_=2 THEN call symputx('test2resulta',_infile_);
7 IF _n_=3 THEN call symputx('test2resultb',_infile_);
8RUN;
9 
10%mp_assert(
11 iftrue=("&test2resulta" = "blahblah&rep.blah&rep. replace &rep.X"),
12 desc=Checking second replace 2nd row,
13 outds=work.test_results
14)
6 Bloque de código
DATA STEP Data
¡Copiado!
1%let test3="&sasjswork/file3.txt";
2%let str=%str(replace.string.with.dots );
3%let rep=%str( more.dots);
4DATA _null_;
5 file &test3 lrecl=500;
6 put 'blahblah';
7 put "blahblah&str.blah&str. replace &str.X";
8 put "blahbreplacewith&str.spacesahblah";
9RUN;
7 Bloque de código
MACRO CALL
Explicación :
Ejecución y validación final para el escenario con puntos en las cadenas de caracteres.
¡Copiado!
1%mp_replace(&test3, findvar=str, replacevar=rep)
2 
3DATA _null_;
4 INFILE &test3 lrecl=500;
5 INPUT;
6 IF _n_=2 THEN call symputx('test3resulta',_infile_);
7 IF _n_=3 THEN call symputx('test3resultb',_infile_);
8RUN;
9 
10%mp_assert(
11 iftrue=("&test3resulta" = "blahblah&rep.blah&rep. replace &rep.X"),
12 desc=Checking third replace 2nd row (dots),
13 outds=work.test_results
14)
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.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.