Publicado el :
Prueba de Macro CREATION_INTERNE

Prueba de la macro mf_getuniquelibref

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script SAS© implementa una serie de pruebas unitarias para la macro `mf_getuniquelibref`, que está diseñada para generar nombres de librefs únicos. Utiliza las macros de aserción del framework SASUnit (`%mp_assertscope` y `%mp_assert`). El script comienza guardando el estado del entorno de macros (`%mp_assertscope(SNAPSHOT)`), luego prueba la creación de librefs válidos con prefijos estándar ('lib', 'libref7'). Para cada caso válido, asigna el libref a la biblioteca `work` y usa `%mp_assert` para confirmar que la operación se realizó sin errores del sistema (`%syscc=0`). Se realiza una verificación del entorno de macros (`%mp_assertscope(COMPARE)`) después de la primera prueba de libref válido. En la segunda parte, el script prueba escenarios de librefs inválidos: prefijos que exceden los 8 caracteres ('lib8char', 'invalidlib') o prefijos que comienzan con un dígito ('8adlib'). Para estos casos, se usa `%mp_assert` para asegurar que la macro `mf_getuniquelibref` devuelve 0, indicando un fallo en la generación del libref. Todos los resultados de las aserciones se registran en la tabla `work.test_results`.
Análisis de datos

Type : CREATION_INTERNE


El script no manipula datos externos o datos de bibliotecas SAS estándar como SASHELP. Opera sobre la creación y asignación de librefs temporales a la biblioteca `work`. Los resultados de las pruebas se almacenan en la tabla `work.test_results`, generada dinámicamente durante la ejecución del script.

1 Bloque de código
Llamadas a Macros SASUnit Data
Explicación :
Este bloque realiza pruebas para librefs válidos. Inicializa una instantánea del entorno, luego usa `mf_getuniquelibref` para crear dos librefs únicos ('libshort' y 'lib7') con prefijos válidos. Cada libref se asigna luego a la biblioteca `work`. Se utilizan aserciones a través de `%mp_assert` para verificar que la asignación (`LIBNAME`) se realizó sin errores (`%syscc=0`), y los resultados se almacenan en `work.test_results`.
¡Copiado!
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 Bloque de código
Llamadas a Macros SASUnit Data
Explicación :
Este bloque prueba los casos en los que `mf_getuniquelibref` debería fallar. Intenta generar librefs con prefijos inválidos: 'lib8char' e 'invalidlib' (más de 8 caracteres), y '8adlib' (que comienza con un dígito). Para cada prueba, `%mp_assert` verifica que la macro devuelve un valor de 0, indicando que no se pudo crear ningún libref válido, y registra estos fallos esperados en `work.test_results`.
¡Copiado!
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)
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.
Información de copyright : 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/.