JUnit 4.x 用 BDL スクリプトの例(レガシー)

スクリプトの例

以下のサンプル JUnit テスト スクリプトには、テストのセットアップと後処理 (tear-down) のためのいくつかの注釈が含まれています。このスクリプトは、サンプル JUnit 4.x テストケースをインポートし、doFoo メソッドと doFoo2 メソッドを選択することによって生成されたものです。

注: 次のスクリプトは、以前のバージョンの Silk Performer を使って生成されたスクリプトです。Silk Performer 19.5 以降では、JUnit インポートが作成するスクリプトは若干異なります。 詳細については、「JUnit 用 BDL スクリプトの例」を参照してください。
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 メソッドの呼び出しに対してオプション タイマ パラメータを指定した場合は、コンストラクタ、テスト メソッド、セットアップ メソッド、後処理メソッドの実行時間が測定されます。 このトピックの例では、次のような測定結果が得られます。

  • コンストラクタ:JU4ImporterTest.<init>
  • メソッド:doFoodoFoo2
  • テストのセットアップ:myBeforeClassmyBefore
  • テストの後処理:myAfterClassmyAfter