Publié le :
Test de Macro CREATION_INTERNE

Test de la macro mf_getuniquelibref

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script SAS© met en œuvre une série de tests unitaires pour la macro `mf_getuniquelibref`, qui est conçue pour générer des noms de librefs uniques. Il utilise les macros d'assertion du framework SASUnit (`%mp_assertscope` et `%mp_assert`). Le script commence par sauvegarder l'état de l'environnement macro (`%mp_assertscope(SNAPSHOT)`), puis il teste la création de librefs valides avec des préfixes standards ('lib', 'libref7'). Pour chaque cas valide, il assigne le libref à la bibliothèque `work` et utilise `%mp_assert` pour confirmer que l'opération s'est déroulée sans erreur système (`%syscc=0`). Une vérification de l'environnement macro (`%mp_assertscope(COMPARE)`) est effectuée après le premier test de libref valide. Dans la seconde partie, le script teste les scénarios de librefs invalides : des préfixes dépassant 8 caractères ('lib8char', 'invalidlib') ou des préfixes commençant par un chiffre ('8adlib'). Pour ces cas, `%mp_assert` est utilisé pour s'assurer que la macro `mf_getuniquelibref` retourne 0, indiquant un échec de la génération du libref. Tous les résultats des assertions sont consignés dans la table `work.test_results`.
Analyse des données

Type : CREATION_INTERNE


Le script ne manipule pas de données externes ou de données issues de bibliothèques SAS standards comme SASHELP. Il opère sur la création et l'assignation de librefs temporaires à la bibliothèque `work`. Les résultats des tests sont stockés dans la table `work.test_results`, générée dynamiquement durant l'exécution du script.

1 Bloc de code
Appels de Macros SASUnit Data
Explication :
Ce bloc effectue des tests pour des librefs valides. Il initialise un instantané de l'environnement, puis utilise `mf_getuniquelibref` pour créer deux librefs uniques ('libshort' et 'lib7') avec des préfixes valides. Chaque libref est ensuite assigné à la bibliothèque `work`. Des assertions via `%mp_assert` sont utilisées pour vérifier que l'assignation (`LIBNAME`) s'est déroulée sans erreur (`%syscc=0`), et les résultats sont stockés dans `work.test_results`.
Copié !
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 Bloc de code
Appels de Macros SASUnit Data
Explication :
Ce bloc teste les cas où `mf_getuniquelibref` devrait échouer. Il essaie de générer des librefs avec des préfixes invalides : 'lib8char' et 'invalidlib' (plus de 8 caractères), et '8adlib' (commençant par un chiffre). Pour chaque test, `%mp_assert` vérifie que la macro retourne une valeur de 0, indiquant qu'aucun libref valide n'a pu être créé, et enregistre ces échecs attendus dans `work.test_results`.
Copié !
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)
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations 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/.