Publié le :
Macro CREATION_INTERNE

Test de la macro varsnext

En attente de validation
La macro `%test_varsnext` initialise diverses listes de variables (`vars`), une variable cible (`var`) et un indicateur de sensibilité à la casse (`caseSensitive`). Elle appelle ensuite la macro `%varsnext` avec différentes combinaisons de ces paramètres pour trouver la variable suivant `var` dans `vars`. Les résultats sont vérifiés à l'aide de la macro `%assertEqual`. Les scénarios testés incluent des listes vides, des variables cibles inexistantes, et des tests avec et sans sensibilité à la casse. Les macros `%createTempVar` et `%assertEqual` sont supposées exister et faire partie d'un framework de test plus large.
Analyse des données

Type : CREATION_INTERNE


Les données (listes de variables et paramètres de test) sont créées dynamiquement au sein de la macro de test pour simuler différents scénarios d'entrée pour la macro %varsnext. Aucune donnée externe ou de SASHELP n'est utilisée.

1 Bloc de code
MACRO Data
Explication :
Ce bloc définit la macro `%test_varsnext` et l'appelle immédiatement. La macro `%test_varsnext` est conçue pour valider le comportement de la macro `%varsnext` dans divers scénarios de test. Elle initialise des variables locales, puis définit des listes de chaînes de caractères (`vars`), une chaîne de caractères à rechercher (`var`), et un flag `caseSensitive`. Pour chaque scénario, elle appelle `%varsnext` pour obtenir la chaîne suivante dans la liste après `var`, et utilise `%assertEqual` pour comparer le résultat obtenu avec un résultat attendu (`e`). Les tests couvrent les cas où la variable suivante est trouvée, la gestion des espaces, la sensibilité à la casse, les listes vides, les variables cibles vides ou inexistantes. Les macros `%createTempVar` et `%assertEqual` sont des utilitaires de test typiques.
Copié !
1%macro test_varsnext;
2 
3 %local tres;%let tres=%createTempVar;%local &tres;
4 %local vars var RESULT desc e;
5 
6 %let vars=a b c d e;
7 %let var=c;
8 %let caseSensitive=0;
9 %let e=d;
10 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
11 %assertEqual(a=&e,b=&RESULT);
12 
13 %let vars=a b c d e;
14 %let var=%str( c );
15 %let caseSensitive=0;
16 %let e=d;
17 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
18 %assertEqual(a=&e,b=&RESULT);
19 
20 %let vars=a b B C c D e;
21 %let var=c;
22 %let caseSensitive=1;
23 %let e=D;
24 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
25 %assertEqual(a=&e,b=&RESULT);
26 
27 
28 %let vars=a b B C c D e;
29 %let var=c;
30 %let caseSensitive=0;
31 %let e=c;
32 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
33 %assertEqual(a=&e,b=&RESULT);
34 
35 
36 %let vars=;
37 %let var=c;
38 %let caseSensitive=0;
39 %let e=;
40 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
41 %assertEqual(a=&e,b=&RESULT);
42 
43
44 %let vars=a b c d e f;
45 %let var=;
46 %let caseSensitive=0;
47 %let e=;
48 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
49 %assertEqual(a=&e,b=&RESULT);
50 
51 
52 %let vars=a b c d e f;
53 %let var=x;
54 %let caseSensitive=0;
55 %let e=;
56 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
57 %assertEqual(a=&e,b=&RESULT);
58 
59 
60 %let vars=a b c d e f;
61 %let var=D;
62 %let caseSensitive=1;
63 %let e=;
64 %varsnext(vars=&vars,var=&var,caseSensitive=&caseSensitive,res=&tres);%let RESULT=&&&tres;
65 %assertEqual(a=&e,b=&RESULT);
66 
67%mend;
68 
69%test_varsnext;
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.