Ajout de données de test à un tableau

Vous pouvez spécifier des données d'entrée, ou des données de sortie attendues, pour les éléments de tableau dans l'Editeur de scénario de test. zUnit ne génère des instructions dans le programme de test que pour les éléments du tableau contenant des données.

Exemple

L'exemple de code suivant définit un tableau de valeurs pour le paramètre I-ITEM03 :
       01 LOGICALPARAMS.
           03 I-ITEM01     PIC X(20).
           03 R-ITEM01     REDEFINES I-ITEM01 PIC 9(20) .
           03 I-ITEM02     PIC X(20).
           03 R-ITEM02     REDEFINES I-ITEM02 OCCURS 20  PIC X(1) .
           03 I-ITEM03     OCCURS 25 PIC X(2).
Cette capture d'écran montre comment ce tableau est affiché dans l'Editeur de scénario de test :
Exemple de tableau dans l'Editeur de scénario de test
Vous pouvez saisir des données d'entrée pour les éléments de tableau :
Exemple de données de tableau dans l'Editeur de scénario de test
zUnit génère les instructions suivantes dans le sous-programme SETUP du programme de test. Dans la section WORKING-STORAGE de ce sous-programme, les valeurs de données sont affectées aux variables ZUT00000000 à ZUT00000005. Aucune variable n'est définie pour les éléments du tableau dépourvus de données d'entrée. Dans la division PROCEDURE, les valeurs des variables sont fournies au paramètre I-ITEM03.
       IDENTIFICATION DIVISION.
       PROGRAM-ID. 'SETUP'.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       1 CEEGTST-SIZE PIC S9(9) COMP-5.
       1 CEEGTST-HEAP PIC S9(9) COMP-5.
       1 PARM-SIZE    PIC S9(9) COMP-5.
       1 CURRENT-TEST-FIXTURE-PTR POINTER.
       1 CURRENT-TEST-FIXTURE-PTR-VALUE REDEFINES
           CURRENT-TEST-FIXTURE-PTR PIC S9(9) COMP-5.
       1 NEXT-TEST-FIXTURE-PTR POINTER.
       1 NEXT-TEST-FIXTURE-PTR-VALUE REDEFINES
           NEXT-TEST-FIXTURE-PTR  PIC S9(9) COMP-5.
       1 FAIL-MESSAGE-TXT PIC X(254).
       1 FAIL-MESSAGE-LEN PIC S9(9) COMP-5.
       1 AZ-TEST-INPUT-DATA-VALUE.
          3 ZUT00000000.
            5 PIC X(1) DISPLAY VALUE '1'.
            5 PIC X(1) DISPLAY VALUE SPACES.
          3 ZUT00000001.
            5 PIC X(1) DISPLAY VALUE '2'.
            5 PIC X(1) DISPLAY VALUE SPACES.
          3 ZUT00000002.
            5 PIC X(1) DISPLAY VALUE '3'.
            5 PIC X(1) DISPLAY VALUE SPACES.
          3 ZUT00000003.
            5 PIC X(1) DISPLAY VALUE '4'.
            5 PIC X(1) DISPLAY VALUE SPACES.
          3 ZUT00000004.
            5 PIC X(1) DISPLAY VALUE '5'.
            5 PIC X(1) DISPLAY VALUE SPACES.
          3 ZUT00000005.
            5 PIC X(1) DISPLAY VALUE '6'.
            5 PIC X(1) DISPLAY VALUE SPACES.
       1 AZ-TEST-NAME-FOR-SUB   PIC X(254) EXTERNAL.
       1 AZ-TEST-NAME-LEN  PIC S9(9) COMP-5 EXTERNAL.
       1 AZ-TEST-CASE-PTR  POINTER EXTERNAL.
       1 AZ-TEST-CASE-PTR-VALUE REDEFINES
           AZ-TEST-CASE-PTR  PIC 9(9) COMP-5.
       LINKAGE SECTION.
       1 LOGICALPARAMS.
         3 I-ITEM01 PIC X(20).
         3 R-ITEM01 REDEFINES I-ITEM01 PIC 9(20).
         3 I-ITEM02 PIC X(20).
         3 R-ITEM02 REDEFINES I-ITEM02 OCCURS 20 PIC X(1).
         3 I-ITEM03 OCCURS 25 PIC X(2).
       1 TEST-CASE-PTR    POINTER.
       1 TEST-CASE-PTR-VALUE REDEFINES
           TEST-CASE-PTR  PIC 9(9) COMP-5.
       1 TEST-FIXTURE-PTR POINTER.
       1 TEST-NAME-PTR    POINTER.
       1 TEST-NAME-LEN    PIC S9(9) COMP-5.
       1 TEST-NAME        PIC X(254).
       PROCEDURE DIVISION USING BY VALUE TEST-CASE-PTR
                          BY REFERENCE TEST-FIXTURE-PTR
                          BY VALUE TEST-NAME-PTR
                          BY VALUE TEST-NAME-LEN.
           SET ADDRESS OF TEST-NAME TO TEST-NAME-PTR
           MOVE TEST-NAME(1:TEST-NAME-LEN) TO
              AZ-TEST-NAME-FOR-SUB(1:TEST-NAME-LEN)
           MOVE TEST-NAME-LEN TO AZ-TEST-NAME-LEN
           EVALUATE TEST-NAME(1:TEST-NAME-LEN)
              WHEN 'ENTRY1'
                DISPLAY 'SETUP (' TEST-NAME(1:TEST-NAME-LEN) ')'
      *       configuration pour ENTRY1 dans le test
                PERFORM ALLOCATE-PARM
                MOVE ZUT00000000 TO I-ITEM03 OF LOGICALPARAMS (1)
                MOVE ZUT00000001 TO I-ITEM03 OF LOGICALPARAMS (2)
                MOVE ZUT00000002 TO I-ITEM03 OF LOGICALPARAMS (3)
                MOVE ZUT00000003 TO I-ITEM03 OF LOGICALPARAMS (4)
                MOVE ZUT00000004 TO I-ITEM03 OF LOGICALPARAMS (6)
                MOVE ZUT00000005 TO I-ITEM03 OF LOGICALPARAMS (8)
                MOVE TEST-CASE-PTR-VALUE TO AZ-TEST-CASE-PTR-VALUE
           END-EVALUATE
           GOBACK
           .
        ALLOCATE-PARM.
      *    allocation d'une instance de structure de paramètre
           INITIALIZE CEEGTST-HEAP CEEGTST-SIZE
      *    obtention d'une taille de paramètre
           INITIALIZE PARM-SIZE
      *    LONGUEUR de LOGICALPARAMS : 90
           IF 90 > PARM-SIZE
             MOVE 90 TO PARM-SIZE
           ADD PARM-SIZE TO CEEGTST-SIZE
      *    obtention d'un segment de mémoire
           CALL 'CEEGTST' USING CEEGTST-HEAP CEEGTST-SIZE
                TEST-FIXTURE-PTR OMITTED
           SET NEXT-TEST-FIXTURE-PTR TO TEST-FIXTURE-PTR
      *    définition de l'adresse d'un paramètre
           SET ADDRESS OF LOGICALPARAMS TO NEXT-TEST-FIXTURE-PTR
           .
       END PROGRAM 'SETUP'.