Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Hinweise zum Testen von objektorientierten Programmen

  • Adressierung

    • Klassen werden durch eine Source-Qualifizierung angesprochen: S=<class>. <class> ist der Name, der im CLASS-ID Paragrafen angegeben ist.

    • Methoden werden durch eine Procedure-Qualifizierung angesprochen:
      PROC={FACTORY | OBJECT}.PROC=<method>, wobei <method> der Name ist, der im METHOD-ID Paragrafen angegeben ist.

      Eine Source-Qualifizierung ist dann notwendig, wenn der aktuelle Programmpunkt nicht in (einer Methode) der Klasse liegt.
      Procedure-Qualifizierungen sind nur soweit nötig, wie dies für die eindeutige Identifizierung erforderlich ist. So kann PROC={FACTORY | OBJECT} für Methoden grundsätzlich entfallen, da der Methodenname in der Klasse eindeutig sein muss.

  • Kommandos

    • Setzen von Testpunkten

      Das Setzen von Testpunkten in Methoden ist mit der Source- und Procedure-Qualifikation möglich:
      %INSERT [S=<class>.] [PROC=<method>.] srcref

      Auf eine Objektreferenz kann eine Schreibüberwachung gesetzt werden:
      %ON %WRITE(objref). Die Anzeige einer durch NEW veränderten Objektreferenz ist aber erst nach Rückkehr an die Aufrufstelle möglich.

    • Ablaufverfolgung

      Bei %TRACE können Klassen und Methoden als Trace-Bereich angegeben werden:
      %TRACE <n> IN S=<class>.[PROC={FACTORY | OBJECT}.PROC=<method>]

    • Anzeigen von Daten

      %DISPLAY

      Daten eines Objektes sind nur sichtbar, wenn sich die Unterbrechungsstelle in einer Methode dieses Objektes befindet. In diesem Fall wird keine Qualifikation angegeben.

      Daten in einer Methode sind nur innerhalb dieser Methode sichtbar.

      Eine Objektreferenz wird wie folgt angezeigt:

      <level> objref
               <level+1> FACTORY | OBJECT | NULL
               <level+1> class-name
      

      Die erste Komponente gibt an, ob die Referenz auf das Factory-Objekt oder ein normales Objekt verweist oder eine Nullreferenz ist. Die zweite Komponente zeigt den Namen der Klasse des aktuell referenzierten Objektes an; für eine Nullreferenz entfällt sie.

      %SD

      %SD zeigt die Daten in der aktuellen dynamischen Aufruf-Verschachtelung von Programmen und Methoden an. Für Methoden werden nur die lokalen Daten der Methode, nicht aber die Daten des umgebenden Objektes ausgegeben.
      Zusätzlich werden pro Klasse source-modul-globale Daten, wie z.B
      _COMPILATION_DATE ausgegeben.

    • Ändern von Daten

      %SET, %MOVE

      Eine high-level Zuweisung an eine Objektreferenz wird von AID mit einer Fehlermeldung (Types are not convertible...) abgewiesen. Ein low-level Zugriff auf Objektreferenzen ist möglich, liegt aber vollständig in der Verantwortung des Benutzers.