以下のサンプル 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 メソッドの呼び出しに対してオプション タイマ パラメータを指定した場合は、コンストラクタ、テスト メソッド、セットアップ メソッド、後処理メソッドの実行時間が測定されます。 このトピックの例では、次のような測定結果が得られます。