以下のサンプル JUnit テスト スクリプトには、テストのセットアップと後処理 (tear-down) のためのいくつかの注釈が含まれています。このスクリプトは、サンプル JUnit 4.x テストケースをインポートし、doFoo メソッドと doFoo2 メソッドを選択することによって生成されたものです。
var ghTestObj :number; dcluser user JavaUser transactions TInit :begin; TMain :1; TEnd :end; dclfunc function JUnit4Before begin // @Before JavaCallMethod(ghTestObj, "myBefore", "myBefore"); end JUnit4Before; function JUnit4After begin // @After JavaCallMethod(ghTestObj, "myAfter", "myAfter"); end JUnit4After; function JUnit4CallFunc(hJavaObj :number; sName :string; sTimerName :string optional; sExceptionBuffer :string optional) : boolean begin JUnit4Before(); // @Test JUnit4CallFunc := JavaCallMethod(hJavaObj, sName, sTimerName); if not StrIsNull(sExceptionBuffer) then JavaGetLastException(hJavaObj, sExceptionBuffer); end; JUnit4After(); end JUnit4CallFunc; dcltrans transaction TInit var hPerf : number; begin JavaCreateJavaVM(); ghTestObj := JavaLoadObject("JU4ImporterTest", "JU4ImporterTest.<init>"); // @BeforeClass JavaCallMethod(JAVA_STATIC_METHOD, "JU4ImporterTest.myBeforeClass", "myBeforeClass"); end TInit; transaction TMain var sBuffer :string; begin JUnit4CallFunc(ghTestObj, "doFoo", "doFoo"); JUnit4CallFunc(ghTestObj, "doFoo2", "doFoo2"); end TMain; transaction TEnd var sBuffer :string; begin // @AfterClass JavaCallMethod(JAVA_STATIC_METHOD, "JU4ImporterTest.myAfterClass", "myAfterClass"); JavaFreeObject(ghTestObj); end TEnd;
dclfunc セクションでは、テストのセットアップ、後処理、および例外処理のためのヘルパー関数が定義されています。これらの関数は、トランザクション内で使用されます。
TInit トランザクション内の JavaLoadObject は、JUnit テスト クラス JU4ImporterTest をインスタンス化します。@BeforeClass 注釈を使用する JUnit メソッドは、すべて TInit トランザクション内で呼び出されます。
TMain トランザクション内の JUnit4CallFunc は、JUnit テストのインポートで選択されたすべてのテスト メソッドを呼び出します。最初に、@Before 注釈を使用するメソッドが呼び出されます。次に、テスト メソッド自体 (たとえば、doFoo()) が呼び出されて、最後に、@After 注釈を使用するメソッドが呼び出されます。
Java メソッドの呼び出しに対してオプション タイマ パラメータを指定した場合は、コンストラクタ、テスト メソッド、セットアップ メソッド、後処理メソッドの実行時間が測定されます。 このトピックの例では、次のような測定結果が得られます。