Publié le :
Macro CREATION_INTERNE

Macro de test pour la substitution de chaînes de caractères (%replaceStr)

La macro `%test_replaceStr` a pour but de vérifier l'exactitude de la macro `%replaceStr` (non fournie dans ce code) dans divers scénarios. Elle utilise une macro d'assertion `%assertEqual` (également non fournie) pour comparer le résultat obtenu avec le résultat attendu. Les cas de test incluent des substitutions simples, multiples, le remplacement par une chaîne vide, la gestion de longues chaînes, ainsi que le traitement correct des caractères multi-octets (chinois) et des espaces.
Analyse des données

Type : CREATION_INTERNE


Aucune donnée n'est lue. Le script opère exclusivement sur des variables macro créées en interne avec des instructions `%let` pour les besoins des tests unitaires.

1 Bloc de code
MACRO
Explication :
Ce bloc définit la macro `%test_replaceStr`. Elle initialise plusieurs variables macro locales et exécute une série de tests. Chaque test consiste à définir une chaîne source, une cible à remplacer, et une chaîne de remplacement. Elle utilise ensuite la macro `%assertEqual` (non fournie) pour vérifier si le résultat de la macro `%replaceStr` (non fournie) correspond à la valeur attendue (`expect`). Les tests couvrent de multiples cas, y compris les caractères spéciaux, les chaînes longues et les substitutions multiples.
Copié !
1%macro test_replaceStr;
2 %local SOURCE target replacement cmd RESULT expect;
3 
4 %let SOURCE=%str(abc def);
5 %let target=%str(abc);
6 %let replacement=%str(xy);
7 %let expect=%str(xy def);
8 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
9 
10 %let SOURCE=%str(a b c d);
11 %let target=%str(b);
12 %let replacement=%str(x);
13 %let expect=%str(a x c d);
14 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
15 
16 %let SOURCE=%str(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
17 %let target=%str(a);
18 %let replacement=%str(x);
19 %let expect=%str(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx);
20 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
21
22 
23 %let SOURCE=%str(abc def acb dff);
24 %let target=%str(a);
25 %let replacement=%str(xy);
26 %let expect=%str(xybc def xycb dff);
27 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
28 %put %replaceStr(&SOURCE,&target,&replacement);
29 
30 %let SOURCE=%str(abc def acb dff);
31 %let target=%str(a);
32 %let replacement=%str();
33 %let expect=%str(bc def cb dff);
34 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
35 
36 
37 %let SOURCE=%str(汉字 def acb dff);
38 %let target=%str(a);
39 %let replacement=%str();
40 %let expect=%str(汉字 def cb dff);
41 %let cmd=%nrquote(%%replaceStr(&SOURCE,&target,&replacement));
42 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
43 
44 %let SOURCE=%str(汉字 def 测试 dff);
45 %let target=%str(字);
46 %let replacement=%str(语);
47 %let expect=%str(汉语 def 测试 dff);
48 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
49 
50 %let SOURCE=%str(汉字 def 测试 字符 dff);
51 %let target=%str(字);
52 %let replacement=%str(X);
53 %let expect=%str(汉X def 测试 X符 dff);
54 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
55 
56 %let SOURCE=%str(汉字 def 测试 字符 dff);
57 %let target=%str(d);
58 %let replacement=%str(替换);
59 %let expect=%str(汉字 替换ef 测试 字符 替换ff);
60 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
61 
62 %let SOURCE=%str(a b c d e);
63 %let target=%quote( );
64 %let replacement=%str(_);
65 %let expect=%str(a_b_c_d_e);
66 %assertEqual(a=&expect,b=%replaceStr(&SOURCE,&target,&replacement),msg=&cmd);
67
68%mend;
2 Bloc de code
MACRO
Explication :
Ce bloc exécute la macro de test `%test_replaceStr` définie précédemment pour lancer la suite de validations sur le comportement de la macro `%replaceStr`.
Copié !
1%test_replaceStr;
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.