Dieses Beispiel veranschaulicht, wie das Datenelement "staticField' und das Testfragment 'StaticInitializer' eingesetzt werden.
In diesem Beispiel verfolgt ein Test, wann Exemplare einer Klasse erstellt werden. Wenn ein Exemplar später als eine Sekunde nach dem vorherigen Exemplar dieser Klasse erstellt wird, schreibt der Test eine Protokollnachricht.
Dieser Test verwendet staticField, um in jeder getesteten Klasse ein neues statisches Feld zu erstellen. Im Vergleich hierzu würde die Verwendung von 'fragmentAtClassScope' bei der Angabe des Datumsfeldes dazu führen, dass nur ein einziges Exemplar des Datums in der generierten Klasse mit den Testfragmenten erscheint, ganz egal auf wieviele Klassen der Test angewendet wird. Sie können dies tun, wenn Sie die Zeitverzögerung zwischen der Erstellung von Instanzen einer beliebigen getesteten Klasse verfolgen wollen, anstatt die Verzögerung zwischen der Erstellung von Instanzen jeder getesteten Klasse zu verfolgen.
Um diesen Mustercode zu verwenden, ändern Sie package="com.sample*" im Zielobjekt, so das es sich auf den tatsächlichen Paketnamen bezieht.
Beachten Sie, dass Sie zur Verwendung der Zeichen & und < in XML die Zeicheneinheiten & und < wie im Beispiel dargestellt angeben müssen.
<?xml version="1.0" encoding="ASCII"?> <probekit> <probe> <target type="include" package="com.sample*" method="<init>" /> <target type="exclude" package="*" /> <staticField type="java.util.Date"/> <fragment type="entry"> <data name="lastInstanceDate" type="staticField"/> <data name="clname"/> <code> java.util.Date d = new java.util.Date(); long now = d.getTime(); long prev = lastInstanceDate.getTime(); if (prev != 0 && prev + 1000 < now) { System.out.println("[" + clname + " instance after > 1 second]"); } lastInstanceDate.setTime(now); </code> </fragment> <fragment type="staticInitializer"> <data name="lastInstanceDate" type="staticField"/> <data name="clname"/> <code> lastInstanceDate.setTime(0); System.out.println("[" + clname + " class loaded]"); </code> </fragment> </probe> </probekit>
Übergeordnetes Thema: Probekit-Beispiele
Verwandte Verweise
Das Testobjekt StaticField
Das Testfragment 'staticInitializer'