El script utiliza el framework de pruebas unitarias SASUnit para validar el comportamiento de la macro `%assertMustFail`. Define un escenario de prueba (`%initScenario`) que contiene tres casos de prueba distintos (`%initTestcase`). Cada caso de prueba prepara datos de entrada (`work.tst`) y datos esperados (`work.expected`), luego llama a la macro `%assertMustFail` en un contexto controlado. El resultado de la ejecución se valida posteriormente utilizando las macros `%assertLog` (para verificar la ausencia de errores inesperados en el registro) y `%assertColumns` (para comparar la tabla de resultados `work.tst` con la tabla esperada `work.expected`). Los tres casos de prueba simulan, respectivamente, una aserción que falla, una aserción manual y una aserción que tiene éxito, para asegurar que `%assertMustFail` reaccione correcta y como se espera en cada situación.
Análisis de datos
Type : CREATION_INTERNE
Todos los datos de prueba (`work.cas`, `work.scn`, `work.tst`, `work.expected`) se generan y manipulan directamente en el script mediante pasos DATA. No se leen ni se requieren datos externos.
1 Bloque de código
DATA STEP Data
Explicación : Inicializa el escenario de prueba con la macro `%initScenario`. Crea las tablas `work.cas` y `work.scn` que contienen los identificadores del escenario y del caso de prueba, sirviendo como contexto para el framework SASUnit.
¡Copiado!
/**
\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 Bloque de código
Macro Data
Explicación : Caso de prueba 1: Simula una llamada con una aserción que falla. Prepara un estado inicial (`tst_res=2`) y un estado final esperado (`tst_res=0`). La prueba verifica luego que la ejecución de `%assertMustFail` produce el resultado esperado y que no se generan errores en el registro.
¡Copiado!
%*** 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 -----------------------*/
Explicación : Caso de prueba 2: Simula una llamada con una aserción manual. El estado inicial es `tst_res=1` y el resultado esperado es `tst_res=2`. Esta prueba valida el comportamiento de `%assertMustFail` en esta configuración específica.
¡Copiado!
%*** 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 -----------------------*/
Explicación : Caso de prueba 3: Simula una llamada con una aserción que tiene éxito (aserción verde). `%assertMustFail` espera un fallo; por lo tanto, un éxito debería tratarse como una anomalía por el framework de prueba. El estado inicial es `tst_res=0` y el esperado es `tst_res=2`.
¡Copiado!
%*** 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 -----------------------*/
Explicación : Finaliza y limpia el escenario de prueba SASUnit, completando todas las verificaciones.
¡Copiado!
%endScenario();
/** \endcond */
1
%endScenario();
2
/** \endcond */
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información 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 y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.