Publié le :
Test CREATION_INTERNE

Test de la macro _createScnLogConfigTemplate

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script SAS© est un test unitaire qui utilise le framework SASUnit. Il initialise un scénario de test, puis exécute un cas de test spécifique. Le cas de test appelle la macro `_createScnLogConfigTemplate` avec des paramètres définis pour créer un fichier de template de configuration de log dans la bibliothèque de travail (WORK). Il procède ensuite à des assertions pour vérifier que le fichier a été créé (existence et contenu) et qu'il ne contient aucune erreur ou avertissement dans le log SAS©. Enfin, il nettoie le fichier créé après le test.
Analyse des données

Type : CREATION_INTERNE


Le script ne consomme pas de données externes non gérées. Il crée un fichier de template de configuration de log dans la bibliothèque temporaire 'WORK' et utilise un chemin de référence (g_refdata) qui est une variable de macro SASUnit censée pointer vers des données de test gérées par le framework.

1 Bloc de code
Macro SASUnit
Explication :
Initialise le scénario de test global et définit la macro 'testcase' qui encapsule la logique du test unitaire. Le paramètre 'i_desc' fournit une description du scénario, identifiant l'objectif du test.
Copié !
1%initScenario (i_desc=Test of _createScnLogConfigTemplate.sas);
2%macro testcase(i_object=_createScnLogConfigTemplate.sas, i_desc=%str(Correct call));
3 
2 Bloc de code
Macro _createScnLogConfigTemplate Data
Explication :
Ce bloc initialise le cas de test spécifique et appelle la macro `_createScnLogConfigTemplate`. Cette macro est testée pour s'assurer qu'elle génère correctement un fichier de configuration de log SASUnit. Le fichier est créé dans le dossier de travail SAS (`WORK`) avec le nom `sasunit.scnlogconfig.xx.template.xml`. Les chemins des dossiers de logs et le langage sont spécifiés, 'XX' étant un placeholder pour le test.
Copié !
1 /* start testcase */
2 %initTestcase(i_object=&i_object., i_desc=&i_desc.);
3 
4 /* call */
5 %_createScnLogConfigTemplate(i_projectBinFolder =%sysfunc(pathname(WORK))
6 ,i_sasunitLogFolder =./logs
7 ,i_sasunitScnLogFolder =./scnLogs
8 ,i_sasunitLanguage =XX
9 );
10 
11 %endTestcall()
3 Bloc de code
Macro SASUnit
Explication :
Ce bloc contient les assertions qui vérifient le succès du test. `%assertLog` s'assure qu'aucun avertissement ou erreur n'a été émis dans le log SAS. `%assertEquals` vérifie que le fichier de template a bien été créé en utilisant la fonction `fileexist`. `%assertText` compare le contenu du fichier généré avec un fichier de référence spécifié par la variable de macro `g_refdata` pour valider sa conformité.
Copié !
1 /* assert */
2 %assertLog(i_errors=0, i_warnings=0);
3 %assertEquals (i_actual =%sysfunc(fileexist(%sysfunc(pathname(WORK))/sasunit.scnlogconfig.xx.template.xml))
4 ,i_expected=1
5 ,i_desc =New scn log config template xml file must exist
6 );
7 
8 %assertText (i_expected = &g_refdata./sasunit.scnlogconfig.xx.template.xml
9 ,i_actual = %sysfunc(pathname(WORK))/sasunit.scnlogconfig.xx.template.xml
10 ,i_desc = Scn-Log config template created correctly
11 );
12
13 /* end testcase */
14 %endTestcase()
4 Bloc de code
Fonction SYSCALL / Nettoyage
Explication :
Ce bloc gère le nettoyage après le test. Il définit un fileref `fdel` pointant vers le fichier de template créé, puis utilise `%sysfunc(fdelete(fdel))` pour supprimer ce fichier. `filename fdel clear;` libère le fileref. Les lignes finales (`%mend testcase; %testcase; %endScenario();`) marquent la fin de la macro de test et du scénario global SASUnit.
Copié !
1 filename fdel "%sysfunc(pathname(WORK))/sasunit.scnlogconfig.xx.template.xml";
2 %put %sysfunc(fdelete(fdel));
3 filename fdel clear;
4%mend testcase; %testcase;
5 
6%endScenario();
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/.