Getting started with the JMockit Testing Toolkit の邦訳(前編)

JMockit ツールキットはこちらから、全配布物をzipファイルとして入手できます。また Maven 2 の公開リポジトリからバイナリとソースjarファイルを入手できます。このツールキットのドキュメントは、チュートリアルAPIドキュメント、いくつかのサンプルテストスイートから参照できます。

JMockit のはじめ方

JMockit は以下のステップで使い始めることができます。

  1. 最新配布パッケージをココから入手するか、SVNリポジトリからチェックアウトします。
  2. zip ファイルを任意ディレクトリに解凍します。ライブラリとソースファイル、サンプルファイル、Javadocs と追加のドキュメントが含まれた jmockit ディレクトリが作成されます。Ant で JMockit プロジェクトをビルドするには、追加でjmockit-libs.zip ファイルをダウンロードして jmockit ディレクトリに解凍する必要があります。Maven でビルドするには jmockit/pom.xml を利用するだけです。
  3. jmockit.jar を IDE や Ant ビルドファイルなど、必要なクラスパスに追加します。
  4. 環境によって以下を実施する必要があります。
    • JDK 1.5 を利用している場合、テストの実行時に JVM パラメータとして "-javaagent:jmockit.jar" (jmockit.jar はjar ファイルへのパス)を指定します。この JVM オプションにより JMockitバイトコードを操作するために内部的に利用する「Java agent」がロードされるようになります。1.6 かそれ以上の JVM でも、たとえば IBM J9 JDK 1.6,や Mac OS X JDKs そして Solaris OS 向けの JDK のように JMockit がサポートしない Attach API 実装の場合は、同様に JVM パラメータを指定する必要があります。
    • JUnit(4.5以上)と JDK1.6 以上を使用している場合、クラスパスで JUnit jar ファイルより前に jmockit.jar を指定する必要があります。JUnit の古いバージョンはサポートされませんが、Junit4 を利用して JUnit 3.8 形式のテストを記述することはできます。Eclipseユーザの場合は "Java Build Path" の "Order and Export" の設定でクラスパスの jar の順番を入れ変えます。
    • TestNG(5.14以上)を利用している場合、このページの手順にて JMockit-TestNG インテグレーションの設定を行う必要があります。
    • jmockit.jar にはソースファイルが添付されているため、IDE からソースファイルを参照することができます。jmockit/www/javadoc ディレクトリには、オンライン版と同様なHTML形式のAPIドキュメントが含まれています。

Ant ビルドスクリプトで JMockit を利用する場合

build.xmlに以下の設定を追加します。

<junit fork="yes" forkmode="once" dir="directoryContainingJars">
   <!-- If needed (eg, when running on JDK 1.5), uncomment the following JVM argument:
   <jvmarg value="-javaagent:jmockit.jar"/> -->

   <classpath path="jmockit.jar"/>

   <!-- To generate (if desired) a code coverage report: -->
   <classpath path="jmockit-coverage-htmlfull.jar"/>

   <!-- additional classpath entries, including one for the appropriate junit.jar -->

   <batchtest>
      <!-- filesets specifying the desired test classes -->
   </batchtest>
</junit>

MavenJMockit を利用する場合

jmockit の公開リポジトリの定義を追加します。

<repository>
   <id>jmockit-svn</id>
   <url>http://jmockit.googlecode.com/svn/maven-repo</url>
</repository>


依存関係の定義を設定します。

<dependency>
   <groupId>mockit</groupId>
   <artifactId>jmockit</artifactId>
   <version>0.999.6</version>
   <scope>test</scope>
</dependency>

この依存関係の定義は junit の定義の前に記載する必要があります


JDK1.5 を利用している場合は javaagent の初期化パラメータを指定する必要があります。

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
   <configuration>
      <argLine>-javaagent:"${settings.localRepository}"/mockit/jmockit/0.999.6/jmockit-0.999.6.jar</argLine>
   </configuration>
</plugin>

後編に続く。。