Le script utilise le framework de test unitaire SASUnit pour valider le comportement de la macro `%assertMustFail`. Il définit un scénario de test (`%initScenario`) qui contient trois cas de test distincts (`%initTestcase`). Chaque cas de test prépare des données d'entrée (`work.tst`) et des données attendues (`work.expected`), puis appelle la macro `%assertMustFail` dans un contexte contrôlé. Le résultat de l'exécution est ensuite validé à l'aide des macros `%assertLog` (pour vérifier l'absence d'erreurs inattendues dans le journal) et `%assertColumns` (pour comparer la table de résultats `work.tst` à la table attendue `work.expected`). Les trois cas de test simulent respectivement une assertion qui échoue, une assertion manuelle, et une assertion qui réussit, afin de s'assurer que `%assertMustFail` réagit correctement et comme attendu dans chaque situation.
Analyse des données
Type : CREATION_INTERNE
Toutes les données de test (`work.cas`, `work.scn`, `work.tst`, `work.expected`) sont générées et manipulées directement dans le script à l'aide d'étapes DATA. Aucune donnée externe n'est lue ou requise.
1 Bloc de code
DATA STEP Data
Explication : Initialise le scénario de test avec la macro `%initScenario`. Crée les tables `work.cas` et `work.scn` qui contiennent les identifiants du scénario et du cas de test, servant de contexte pour le framework SASUnit.
Copié !
/**
\file
\ingroup SASUNIT_UTIL
\brief Test of macro assertMustFail
\version \$Revision$
\author \$Author$
\date \$Date$
\sa \$HeadURL$
\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/.
*/ /** \cond */
%initScenario(i_desc =Test of macro assertMustFail);
data work.cas;
cas_scnid=&g_scnid.;
cas_id=4;
output;
run;
data work.scn;
scn_scnid=&g_scnid.;
output;
run;
1
/**
2
\file
3
\ingroup SASUNIT_UTIL
4
5
\brief Test of macro assertMustFail
6
7
\version \$Revision$
8
\author \$Author$
9
\date \$Date$
10
\sa \$HeadURL$
11
\copyright Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de
12
This file is part of SASUnit, the Unit testing framework for SAS(R) programs.
13
For copyright information and terms of usage under the GNU Lesser General Public License see included file README.md
14
or https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
15
16
*/ /** \cond */
17
18
%initScenario(i_desc =Test of macro assertMustFail);
19
20
DATA work.cas;
21
cas_scnid=&g_scnid.;
22
cas_id=4;
23
OUTPUT;
24
RUN;
25
DATA work.scn;
26
scn_scnid=&g_scnid.;
27
OUTPUT;
28
RUN;
2 Bloc de code
Macro Data
Explication : Cas de test 1 : Simule un appel avec une assertion qui échoue. Il prépare un état initial (`tst_res=2`) et un état final attendu (`tst_res=0`). Le test vérifie ensuite que l'exécution de `%assertMustFail` produit le résultat escompté et qu'aucune erreur n'est générée dans le journal.
Copié !
%*** Testcase 1 ***;
data work.tst;
tst_scnid=&g_scnid.;
tst_casid=4;
tst_id=4;
tst_res=2;
output;
run;
data work.expected;
set work.tst;
tst_res=0;
run;
%initTestcase(i_object=assertMustFail.sas, i_desc=call with failed assert);
/*-- switch to example database -----------------------*/
%_switch();
%assertMustFail;
/*-- switch to real database -----------------------*/
%_switch();
%endTestcall;
%assertLog(i_errors=0,i_warnings=0);
%assertColumns(i_expected=work.expected, i_actual=work.tst);
%endTestcase();
1
%*** Testcase 1 ***;
2
DATA work.tst;
3
tst_scnid=&g_scnid.;
4
tst_casid=4;
5
tst_id=4;
6
tst_res=2;
7
OUTPUT;
8
RUN;
9
DATA work.expected;
10
SET work.tst;
11
tst_res=0;
12
RUN;
13
%initTestcase(i_object=assertMustFail.sas, i_desc=call with failed assert);
14
15
/*-- switch to example database -----------------------*/
16
%_switch();
17
%assertMustFail;
18
/*-- switch to real database -----------------------*/
Explication : Cas de test 2 : Simule un appel avec une assertion manuelle. L'état initial est `tst_res=1` et le résultat attendu est `tst_res=2`. Ce test valide le comportement de `%assertMustFail` dans cette configuration spécifique.
Copié !
%*** Testcase 2 ***;
data work.tst;
tst_scnid=&g_scnid.;
tst_casid=4;
tst_id=4;
tst_res=1;
output;
run;
data work.expected;
set work.tst;
tst_res=2;
run;
%initTestcase(i_object=assertMustFail.sas, i_desc=call with manual assert);
/*-- switch to example database -----------------------*/
%_switch();
%assertMustFail;
/*-- switch to real database -----------------------*/
%_switch();
%endTestcall;
%assertLog(i_errors=0,i_warnings=0);
%assertColumns(i_expected=work.expected, i_actual=work.tst);
%endTestcase();
1
%*** Testcase 2 ***;
2
DATA work.tst;
3
tst_scnid=&g_scnid.;
4
tst_casid=4;
5
tst_id=4;
6
tst_res=1;
7
OUTPUT;
8
RUN;
9
DATA work.expected;
10
SET work.tst;
11
tst_res=2;
12
RUN;
13
%initTestcase(i_object=assertMustFail.sas, i_desc=call with manual assert);
14
15
/*-- switch to example database -----------------------*/
16
%_switch();
17
%assertMustFail;
18
/*-- switch to real database -----------------------*/
Explication : Cas de test 3 : Simule un appel avec une assertion qui réussit (green assert). `%assertMustFail` s'attend à un échec ; un succès devrait donc être traité comme une anomalie par le framework de test. L'état initial est `tst_res=0` et l'attendu est `tst_res=2`.
Copié !
%*** Testcase 3 ***;
data work.tst;
tst_scnid=&g_scnid.;
tst_casid=4;
tst_id=4;
tst_res=0;
output;
run;
data work.expected;
set work.tst;
tst_res=2;
run;
%initTestcase(i_object=assertMustFail.sas, i_desc=call with green assert);
/*-- switch to example database -----------------------*/
%_switch();
%assertMustFail;
/*-- switch to real database -----------------------*/
%_switch();
%endTestcall;
%assertLog(i_errors=0,i_warnings=0);
%assertColumns(i_expected=work.expected, i_actual=work.tst);
%endTestcase();
1
%*** Testcase 3 ***;
2
DATA work.tst;
3
tst_scnid=&g_scnid.;
4
tst_casid=4;
5
tst_id=4;
6
tst_res=0;
7
OUTPUT;
8
RUN;
9
DATA work.expected;
10
SET work.tst;
11
tst_res=2;
12
RUN;
13
%initTestcase(i_object=assertMustFail.sas, i_desc=call with green assert);
14
15
/*-- switch to example database -----------------------*/
16
%_switch();
17
%assertMustFail;
18
/*-- switch to real database -----------------------*/
Explication : Termine et nettoie le scénario de test SASUnit, finalisant l'ensemble des vérifications.
Copié !
%endScenario();
/** \endcond */
1
%endScenario();
2
/** \endcond */
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.