Beispiel verwenden

Wenn Sie das Enterprise COBOL-Beispiel AZUTC001 verwenden möchten, müssen Sie den Test Runner konfigurieren und den JCL-Code für den Test Runner übergeben. Anschließend können Sie die Ergebnisse anzeigen.

  1. Doppelklicken Sie zum Öffnen der Konfigurationsdatei für den ZUnit Test Runner im entsprechenden Editor für die ZUnit-Test Runner-Konfiguration auf <HLQ>.ZUNIT.AZUCFG(AZUCF001). Daraufhin wird der Editor geöffnet. Wie im Editor ersichtlich wird über die Konfiguration lediglich ein einziger Testfall ausgeführt: Der Testfall AZUTC001.
  2. Wählen Sie ZUnit-Runner aus und verschaffen Sie sich einen Überblick über die Runner-Fortsetzungseinstellungen. Die Fortsetzungseinstellungen weisen den Test Runner an, die Ausführung auch bei Fehlschlägen und Fehlern fortzusetzen.
  3. Übergeben Sie die JCL <HLQ>.CNTL(ZUNIT001) und überwachen Sie Job ZUNIT001.
  4. Da beim Test AZUTC001.test003 ein Fehlschlag mit einer Assertion erwartet wird, wird der Job ZUNIT001 mit dem Rückkehrcode U0004 abgeschlossen. Für den ZUnit Test Runner sind folgende Rückkehrcodes verfügbar:
    • U0000: Alle Tests wurden bestanden, d. h. es wurden keine Fehler gefunden.
    • U0004: Mindestens ein Test ist mit einer Assertion fehlgeschlagen.
    • U0008: Mindestens ein Test weist einen Fehler (z. B. SOC4, DIV/0) auf.
    • U0016: Es ist ein schwerwiegender Fehler aufgetreten (z. B. Datei-E/A-Fehler).
  5. Die Ausgabe zum Job ZUNIT001 enthält Ausgabedaten der folgenden Programme:
    • ZUnit Test Runner. Diese Ausgabe wird markiert durch 1 in der Beispielausgabe.
    • Der ZUnit-Testfall AZUTC001.cbl, markiert durch 2 in der Beispielausgabe.
    • Das Programm ANAGRAM.cbl, markiert durch 3 in der Beispielausgabe.
     1  ZUnit Test Runner 1.0.0.0 started at 2012-04-18T19:44:14.391...
     1  AZU1003S The Test "AZUTC001.test003" failed due to an assertion. The user-1:supplied text "ANAGRAM failed to detect that Snooze alarms
     1   is an anagram of Alas! No more Zs" is associated with the assertion. The 1:Test is a member of Test Case module "AZUTC001" which has
     1  a name of "AZUTC001 Test Case written in COBOL" and a UUID of "e3a227e2-1:cd9e-4418-81b9-c4863ab3af3b".
     1   o Test count: 4
     1   o Tests passed: 3
     1   o Tests failed: 1
     1   o Tests in error: 0
     1  ZUnit Test Runner 1.0.0.0 ended at 2012-04-18T19:44:14.487.
     2  AZUTC001.test001 Started...
     3  ANAGRAM STARTED...
     3  o FIRST-WORD:Eleven plus two.
     3  o WORD-BUF-1:WVUTSPONLLEEE .
     3  o SECOND-WORD:Twelve plus one.
     3  o WORD-BUF-2:WVUTSPONLLEEE .
     3  o RESULT=Y.
     3  ANAGRAM SUCCESSFUL
     2  AZUTC001.test001 Successful.
     2  AZUTC001.test002 Started...
     3  ANAGRAM STARTED...
     3  o FIRST-WORD:The Morse code.
     3  o WORD-BUF-1:TSROOMHEEEDC .
     3  o SECOND-WORD:Here come dots.
     3  o WORD-BUF-2:TSROOMHEEEDC .
     3  o RESULT=Y.
     3  ANAGRAM SUCCESSFUL
     2  AZUTC001.test002 Successful
     2  AZUTC001.test003 Started...
     3  ANAGRAM STARTED...
     3  o FIRST-WORD:Snooze alarms.
     3  o WORD-BUF-1:ZSSROONMLEAA .
     3  o SECOND-WORD:Alas! No more Zs.
     3  o WORD-BUF-2:ZSSROONMLEAA! .
     3  o RESULT=N.
     3  ANAGRAM SUCCESSFUL
     2  AZUTC001.test004 Started...
     3  ANAGRAM STARTED...
     3  o FIRST-WORD:Astronomer.
     3  o WORD-BUF-1:TSRROONMEA.
     3  o SECOND-WORD:Moon starer.
     3  o WORD-BUF-2:TSRROONMEA .
     3  o RESULT=Y.
     3  ANAGRAM SUCCESSFUL
     2  AZUTC001.test004 Successful
  6. Doppelklicken Sie zum Öffnen der Ergebnisdatei für ZUnit Test Runner im Editor für die ZUnit-Runner-Ergebnisse auf <HLQ>.ZUNIT.AZURES(AZURS001) .
  7. Erweitern Sie den Testfall AZUTC001 und wählen Sie die Option für den Test AZUTC001.test003 aus. Wie erwartet, wird in den Testergebnissen angegeben, dass dieser Test nicht erfolgreich bestanden wurde.
  8. Erweitern Sie alle Knoten unterhalb des Tests AZUTC001.test003 und wählen Sie den Eintrag für die Ausnahmebedingungsnachricht 1003 mit der Fehlerkategorie 2 und dem Komponentencode AZU aus. Diese Nachricht weist darauf hin, dass der Fehlschlag beim Test durch eine Assertion entstanden ist. Sowohl bei Assertionen als auch bei Fehlern handelt es sich um Language Environment-Ausnahmen. Assertionsausnahmen werden jedoch gezielt erstellt, um einen Test zu beenden, wenn wie vom Testautor festgelegt ermittelt wird, dass das tatsächliche Verhalten des Programms beim Test (ANAGRAM.cbl) nicht dem erwarteten Verhalten entspricht.
    AZU1003S The test "AZUTC001.test003" failed due to an assertion. 
    The user-supplied text "ANAGRAM failed to detect that Snooze alarms is an anagram of Alas! No more Zs" is associated with the assertion. 
    The test is a member of test case module "AZUTC001" which set a test case name of "AZUTC001 Test Case Written In COBOL" and an id of "9feb6a09-faf7-4b83-85b4-75664938e53f" when initialized.
  9. Wählen Sie den Traceback-Eingangspunkt (TEST003) aus. Die Traceback-Informationen ermöglichen es Ihnen, die Ursache des Fehlschlags bzw. der Assertionsausnahme einzugrenzen. Aus dem Traceback geht hervor, dass die ZUnit-API AZUASTFM für Assertionen (Fehlschlagen mit Nachricht) für den Eingangspunkt TEST003 bei der Anweisung 623 gestartet wurde.
  10. Öffnen Sie die Compilerliste für das Programm AZUTC001.cbl und suchen Sie den AZUASTFM-Aufruf (Fehlschlagen mit Nachricht) bei Anweisung 623 für den Eingangspunkt TEST003:
    1PP 5655-S71 IBM Enterprise COBOL for z/OS 5.2.0
    000556  IDENTIFICATION DIVISION.
    000557  PROGRAM-ID. 'TEST003'.
    000558  DATA DIVISION.
    000559  WORKING-STORAGE SECTION.
    000560  1 FAIL-MESSAGE-TXT PIC X(254).
    000561  1 FAIL-MESSAGE-LEN PIC S9(9) COMP-5.
    000562  LINKAGE SECTION.
    000563  COPY ANAGRAM.
    ...
    000595  1 TEST-CASE-PTR    POINTER.
    000596  1 TEST-FIXTURE-PTR POINTER.
    000597  1 TEST-NAME-PTR    POINTER.
    000598  1 TEST-NAME-LEN    PIC S9(9) COMP-5.
    000599  1 TEST-NAME        PIC X(254).
    000600  PROCEDURE DIVISION USING BY VALUE TEST-CASE-PTR
    000601                     BY VALUE TEST-FIXTURE-PTR
    000602                     BY VALUE TEST-NAME-PTR
    000603                     BY VALUE TEST-NAME-LEN.
    000604 *    display test name on entry
    000605      SET ADDRESS OF TEST-NAME TO TEST-NAME-PTR
    000606      DISPLAY TEST-NAME(1:TEST-NAME-LEN) ' Started...'
    000607 *    establish addressability to test fixture
    000608      SET ADDRESS OF ANAGRMIO TO TEST-FIXTURE-PTR
    000609 *    test a valid anagram
    000610      CALL 'ANAGRAM' USING ANAGRMIO
    000611      IF NOT-ANAGRAM OR INPUT-ERROR
    000612         MOVE 1 TO FAIL-MESSAGE-LEN
    000613         STRING
    000614            'ANAGRAM failed to detect that '
    000615            FIRST-WORD(1:FIRST-WORD-LEN)
    000616            ' is an anagram of '
    000617            SECOND-WORD(1:SECOND-WORD-LEN)
    000618            DELIMITED BY SIZE INTO FAIL-MESSAGE-TXT
    000619            WITH POINTER FAIL-MESSAGE-LEN
    000620         END-STRING
    000621         SUBTRACT 1 FROM FAIL-MESSAGE-LEN
    000622 *       throw an assertion exception (ends test)
    000623         CALL 'AZUASTFM' USING BY VALUE TEST-CASE-PTR
    000624                         BY REFERENCE FAIL-MESSAGE-TXT
    000625                         BY VALUE FAIL-MESSAGE-LEN
    000626         END-IF
    000627 *    display test name on exit
    000628      DISPLAY TEST-NAME(1:TEST-NAME-LEN) ' Successful.'
    000629      .
    000630   END PROGRAM 'TEST003'.