テストケースの作成を支援するEclipseプラグイン

JavaではJUnitを用いてユニットテストを自動化するテスト手法が広く普及している。JUnitではテストケースをJavaプログラムとして記述しておくことでテストを自動化するため、一度テストケースを書いてしまえば再テストの手間もかからないため、回帰テストが必要となるケースでは特に有効だ。テスティングフレームワークを用いたユニットテストの自動化はJava以外のプログラミング言語でも一般的な手法となっている。

しかし、一般的にテストケースのコード量はテスト対象のコードと同じかそれ以上になると言われており、テストケースの作成にはそれなりの時間を要する。このためユニットテストの整備がついつい後回しになってしまうケースも多いのではないだろうか。

今回はEclipse上でJUnitによるユニットテストの作成・実行を支援するEclipseプラグインとしてQuick JUnitとJUnit Helperの2つを紹介する。

Quick JUnit

Quick JUnitはEclipse上でJUnitのテストケースの作成・実行に便利なキーボードショートカットを提供するプラグインで、Eclipseマーケットプレイスからインストールが可能だ。

図1: Quick JUnitのインストール

Quick JUnitをインストールすると[CTRL]+[9]でテスト対象のJavaソースコードとケースケースを相互に行き来できる。対応するテストケースが存在しない場合はウィザードが起動し、テストケースを作成することも可能だ。テストケースを記述する際はテスト対象のソースコードを確認しながら作業を進めることが多いので便利な機能だ。

また、[CTRL]+[0]でテストケースを実行することができる(テストメソッド内で実行した場合はそのテストメソッドのみ実行される)。Eclipse標準でも[ALT]+[SHIFT]+[X]→[T]というショートカットでテストケースを実行することができるが、Quick JUnitの場合ワンアクションで実行することができる。

Quick JUnitで使用可能なキーボードショートカットには以下のようなものがある。

Quick JUnitのキーボードショートカット

ショートカット 説明
CTRL+9 テスト対象とテストクラスをを切り替える
CTRL+0 テストを実行する
CTRL+SHIFT+0 テストをデバッグ実行する
CTRL+- PDEテストを実行する(Eclipseプラグインの開発時に使用する)
CTRL+SHIFT+- PDEテストをデバッグ実行する(Eclipseプラグインの開発時に使用する)

JUnit Helper

JUnit Helperはテスト対象のコードからテストケースの雛形を生成するもので、Qucik JUnitと同じくEclipseマーケットプレイスからインストールすることができる。

JUnit Helperではテスト対象のコード上で[ALT]+[9]を入力するとテストケースの雛形を生成することができる。それもテストケースのソースファイルだけではなく、テストメソッドの中身まで生成してくれるのだ。たとえば以下のようなクラスがあるとする。

public class HelloWorld {
  public String hello(String name){
    return String.format("Hello, %s!", name);
  }
}

このクラスをエディタで開いた状態で[ALT]+[9]を入力すると以下のようなテストケースが生成される。

public class HelloWorldTest extends TestCase {
  ...
  public void test_hello_A$String() throws Exception {
    // TODO auto-generated by JUnit Helper.
    HelloWorld target = new HelloWorld();
    String name = null;
    String actual = target.hello(name);
    String expected = null;
    assertEquals(expected, actual);
  }
}

生成された雛形のうち、必要な部分だけ書き換えればテストケースの完成だ。また、テスト対象に新しいメソッドを追加した場合、再度[ALT]+[9]を入力することで追加したメソッドに対するテストメソッドの雛形がテストケースに追加される。すでに実装済みのテストメソッドが上書きされることはないので安心だ。

生成可能な雛形はJUnit3/4、またEasyMock、JMock2、Mockito、JMockitといったモックライブラリを使用する雛形を生成することもでき、Eclipseの設定ダイアログで設定することができる。

図2: JUnit Helperの設定

JUnit Helperで使用可能なキーボードショートカットには以下のようなものがある。

JUnit Helperのキーボードショートカット

ショートカット 説明
ALT+8 テストケースからテスト対象クラスを開く
ALT+9 テスト対象クラスからテストケースを開く。テストケースが存在しない場合はファイル、テストメソッドが存在しない場合はテストメソッドの雛形を生成する
ALT+3 テストケースをJUnit3スタイルに変換する
ALT+4 テストケースをJUnit4スタイルに変換する

なお、JUnit HelperはEclipseプラグインとしてだけでなく、コマンドラインスクリプトやMavenプラグインとしても利用可能だ。

まとめ

JUnitのテストケースの記述は手間がかかる上に単純作業になることも多いが、今回紹介したプラグインを利用することで多少なりとも効率よくユニットテストを作成することができるはずだ。また、MockitoやJMockitといったモックライブラリなど、ユニットテストを作成する際に便利なライブラリも存在する。これらもあわせて活用するといいだろう。