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.
- 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.
- 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.
- Übergeben Sie die JCL <HLQ>.CNTL(ZUNIT001) und überwachen Sie Job ZUNIT001.
- 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).
- 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 - Doppelklicken Sie zum Öffnen der Ergebnisdatei für ZUnit Test Runner im Editor für die ZUnit-Runner-Ergebnisse auf <HLQ>.ZUNIT.AZURES(AZURS001) .
- 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.
- 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.
- 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.
- Ö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'.