Certaines macros sont disponibles dans les méthodes des objets ETEST. Vous pouvez utiliser ces macros pour contrôler l'exécution des tests et déterminer le résultat d'un scénario de test.
Les macros sont appelées de la même manière que les méthodes. Contrairement à un appel de fonction, un appel de macro peut écrire des variables de la méthode d'appel et déclencher un retour de la méthode d'appel.
Les macros sont autorisées dans les méthodes suivantes de scénarios et de ressources de test :
Prepare
Execute
CleanUp
Vous pouvez également utiliser les macros dans des méthodes appelées avec ASSERT_SUBMETHOD
.
Finalize
.
Dans d'autres objets, les macros sont sans effet. Ceci est indiqué par un message qui s'affiche dans la vue .
Dans les méthodes de scénarios et de ressources de test, les macros suivantes sont possibles :
Appel de macro |
Description |
---|---|
|
FALSE : l'exécution échoue. TRUE : l'exécution aboutit. |
|
FALSE : l'exécution échoue. TRUE : l'exécution aboutit.
|
|
FALSE : le résultat du test n'est pas concluant. Le résultat ne permet pas de savoir si un test n'a pas pu être effectué. La cause peut être, par exemple, qu'un équipement matériel obligatoire n'est pas disponible sur le système de test. TRUE : le test s'exécute correctement. |
|
FALSE : une erreur a été détectée pendant l'appel de la méthode.
Dans une méthode appelée par
En revanche, dans une méthode appelée sans
Lorsque vous utilisez
|
|
L'exécution du test aboutit (sans aucune erreur détectée). Une méthode |
Les méthodes Prepare
, Execute
et CleanUp
d'un scénario ou d'une ressource de test sont appelées de manière cyclique tant qu'un ASSERT
est évalué comme FALSE ou qu'un TEST_DONE
est appelé. Si un TEST_DONE
est appelé ou si un ASSERT
est évalué comme FALSE, l'exécution de la méthode est interrompue, annulant le reste de l'exécution de la méthode.
Si... |
Alors… |
---|---|
l'exécution d'un test se termine avec |
le test a abouti. |
une assertion de la méthode |
l'exécution du scénario de test a échoué. |
CleanUp
est évaluée comme FALSE, l'exécution du test est interrompue. Ce cas de figure est catégorisé comme une erreur pendant l'initialisation ou la désinitialisation. Un message s'affiche dans Logic Builder. Il indique que le test a été annulé et qu'une réinitialisation du contrôleur est requise.
Dans l'exemple de code de programme ci-dessous, les macros ASSERT
et TEST_DONE
sont utilisées dans la partie mise en œuvre de la méthode Execute
.
diResult := MyAdditionFunction(4, 3);
ASSERT(diResult = 7, 'MyAdditionFunction addition result not correct');
TEST_DONE();
Dans l'exemple de code de programme suivant, les macros ASSERT
et TEST_DONE
sont utilisées pour tester la fonction my_add
(une simple addition).
Dans ce scénario de test, une méthode TestMyAdd
a été créée. La méthode Execute
du scénario de test l'appelle plusieurs fois pour tester la fonction my_add
dans différentes conditions limites et avec différents paramètres.
(* Methode Execute *)
(* Declaration part*)
METHOD Execute : PD_ETest.ET_TestReturn
VAR_INPUT
i_xFirstCall : Bool;
i_ifErrorLogger : PD_ETest.IF_ErrorLogger;
END_VAR
VAR_OUTPUT
q_rProgress : REAL;
q_sState . STRING[255];
END_VAR
VAR
END_VAR
(* Implementation part*)
ASSERT_SUBMETHOD (TestMyAdd(12, 2, 14, i_ifErrorLogger));
ASSERT_SUBMETHOD (TestMyAdd(12, 3, 15, i_ifErrorLogger));
ASSERT_SUBMETHOD (TestMyAdd(12, 4, 16, i_ifErrorLogger));
TEST_DONE();
(* Submethod TestMyAdd *)
(* Declaration part *)
METHOD TestMyAdd : PD_ETest.ET_TestReturn
VAR_INPUT
i_a : INT;
i_b : INT;
i_result : INT;
i_ifErrorLogger : PD_ETest.IF_ErrorLogger;
END_VAR
VAR
iResult : INT;
END_VAR
(* Implementation part *)
iResult : my_add(i_a, i_b);
ASSERT(iresult = i_result);
(* Function my_add *)
(* Declaration part *)
FUNCTION my_add : INT
VAR_INPUT
a : INT;
b : INT;
END_VAR
VAR
END_VAR
(* Implementation part *)
iResult : my_add := a + b;