Publié le :
Test CREATION_INTERNE

Test de la macro mfs_httpheader

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script initialise un emplacement temporaire (`header.txt` dans la bibliothèque `WORK`) pour que la macro `%mfs_httpheader` y écrive les en-têtes HTTP. Il utilise la macro `%mp_assertscope` pour gérer le contexte de l'exécution et prendre des instantanés. La macro `%mfs_httpheader` est appelée deux fois avec des valeurs différentes pour le 'Content-Type'. Après chaque appel, un `DATA _NULL_` est utilisé pour lire le contenu du fichier temporaire. Les macros `%mp_assert` sont ensuite employées pour vérifier que l'exécution s'est déroulée sans erreur (`&syscc=0`) et que les lignes écrites dans le fichier correspondent aux en-têtes attendus. Enfin, l'emplacement original de l'en-tête est restauré pour assurer un nettoyage approprié de l'environnement de test. Ce script met en œuvre des principes de tests unitaires pour la macro `mfs_httpheader` dans un environnement SAS©.
Analyse des données

Type : CREATION_INTERNE


Les données (en-têtes HTTP) sont générées par la macro `%mfs_httpheader` qui les écrit dans un fichier temporaire (`header.txt`) au sein de la bibliothèque `WORK`. Le script lit ensuite ce fichier pour valider son contenu. Aucune source de données externe persistante n'est utilisée.

1 Bloc de code
MACRO CALLS and DATA STEP Data
Explication :
Ce bloc initialise l'emplacement du fichier d'en-tête (`sasjs_stpsrv_header_loc`) vers un chemin temporaire dans la bibliothèque `WORK`. Il utilise `%mp_assertscope` pour marquer un point de référence avant d'appeler `%mfs_httpheader` pour écrire l'en-tête 'Content-Type: application/csv'. Un `DATA _NULL_` est ensuite utilisé pour lire la première ligne de ce fichier et stocker son contenu dans la macro-variable `test1`. Enfin, deux assertions avec `%mp_assert` vérifient que l'exécution a été sans erreur (`&syscc=0`) et que l'en-tête écrit est correct.
Copié !
1%let orig_sasjs_stpsrv_header_loc=&sasjs_stpsrv_header_loc;
2%let sasjs_stpsrv_header_loc=%sysfunc(pathname(work))/header.txt;
3 
4%mp_assertscope(SNAPSHOT)
5%mfs_httpheader(Content-Type,application/csv)
6%mp_assertscope(COMPARE,ignorelist=sasjs_stpsrv_header_loc)
7 
8DATA _null_;
9 INFILE "&sasjs_stpsrv_header_loc";
10 INPUT;
11 IF _n_=1 THEN call symputx('test1',_infile_);
12RUN;
13 
14%mp_assert(
15 iftrue=(&syscc=0),
16 desc=Check code ran without errors,
17 outds=work.test_results
18)
19%mp_assert(
20 iftrue=("&test1"="Content-Type: application/csv"),
21 desc=Checking line was created,
22 outds=work.test_results
23)
2 Bloc de code
MACRO CALLS and DATA STEP Data
Explication :
Ce second bloc de test répète le processus en appelant `%mfs_httpheader` avec 'Content-Type: application/text'. Un `DATA _NULL_` lit la deuxième ligne du fichier d'en-tête et son contenu est stocké dans `test2`. Deux assertions sont effectuées pour valider l'exécution et le contenu de l'en-tête mis à jour. Le bloc se termine par la réinitialisation de la variable `sasjs_stpsrv_header_loc` à sa valeur originale, nettoyant l'environnement pour les exécutions futures ou d'autres tests.
Copié !
1%mfs_httpheader(Content-Type,application/text)
2%let test2=0;
3DATA _null_;
4 INFILE "&sasjs_stpsrv_header_loc";
5 INPUT;
6 IF _n_=2 THEN call symputx('test2',_infile_);
7RUN;
8 
9%mp_assert(
10 iftrue=(&syscc=0),
11 desc=Check code ran without errors for test2,
12 outds=work.test_results
13)
14%mp_assert(
15 iftrue=("&test2"="Content-Type: application/text"),
16 desc=Checking line was created,
17 outds=work.test_results
18)
19 
20/* reset header so the test will pass */
21%let sasjs_stpsrv_header_loc=&orig_sasjs_stpsrv_header_loc;
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. Ce fichier fait partie de SASUnit, le framework de tests unitaires pour les programmes SAS(R). Pour les informations de copyright et les conditions d'utilisation sous la licence GNU Lesser General Public License, voir le fichier inclus README.md ou https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.