JUnitをGroovyで扱うための環境設定メモ(Eclipse4.2) #junitbook

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

先日11/21に発売し、関連する読書会も同時多発的に本日(11/23、札幌・東京・大阪)開催されるという盛り上がりを見せている書籍『JUnit実践入門 』。

私個人としても書籍写経に際し今回はJavaの他にもGroovyでJUnitテストコードを扱えるようになってみよう、と思い、ひとまずはEclipseでその辺の環境を整えるべく試してみました。以下その際の環境設定メモなど。

Eclipseインストールor日本語化設定

事前にJavaをインストール。

Macで環境を作る事にするので、以下の過去エントリを元に構築(素のEclipse+プラグイン上書き)。Windowsの場合は単純にPleiadesで日本語化されたものを解凍&配置すれば出来上がり。Eclipseのバージョンは4.2。

各種プラグインのインストール

  • Quick JUnit Plugin:最新安定版0.6.0を導入。導入時はgrowl関連がエラーとなるのでそれ以外を選択。
  • Groovy Eclipse Plugin:Eclipse4.2用のものを導入。依存性の都合でM2関連のもの、またバージョンの都合(この後入れる予定のSpock等との兼ね合い)でGroovy Compiler 2.0 Featureを対象から除外。

Eclipse諸設定

  • [環境設定]→[Groovy]を選択、[Use monospace font for JUnit]にチェック。

  • 『ソースディレクトリ以外のGroovyファイルをコンパイルさせない』は未チェックだと同じ扱いになるのかな?あんま詳しく見てないので分からんw とりあえずデフォルト値。現象に遭遇するようなら対応しよう。
  • コンテンツ・アシストを効かせたかったので、[command + space]で補完が効くように以下の値を書き換えて反映。


Quick JUnit動作確認

簡単なプロジェクトを作り、Quick JUnitでテストクラス作成及び実行の諸操作が出来る事を確認。JUnitも最新めの4.10が入っている事を確認した。(※2012/11/22現在、最新は4.11のようです)

Groovyクラス及びテストクラス作成

  • Javaで適当なクラス及びメソッドを作成し、それをGroovyからJUnitを使う形式でテストしてみる。以下Javaテストコード。
package junitbook.sandbox;

public class Stack {
	public int add(int numbera, int numberb) {
		return numbera + numberb;
	}
}
  • 新規でGroovy Test Caseを作成。しかしこの流れだとエラーが出てしまう。



  • 試しにGroovyクラスを作ってみる。


  • すると、警告は出るもののクラスを作ることが出来るようだ。適当にクラスを作成。


  • Groovyクラス作成後。エラーは出ている。


  • プロジェクトを右クリック→[Groovy]→[Add Groovy libraries to classpath]を実行。プロジェクトのコンパイル・ビルドが通る事を確認。


  • 先程の流れでGroovyテストクラスを作成、テストが通る事を確認出来た。
package junitbook.sandbox;

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import org.junit.Test;

class GroovyStackTest {

	@Test
	void testAdd() {
		Stack stack = new Stack();
		assertThat(stack.add(10, 20), is(30))
	}

}


  • ただこの状態だと、Groovyのテストクラスがいちいちマウス操作しないと実行出来ない。既存のショートカットは面倒そうだし、何とかしたい。んでひとまずの処置としてショートカットキーの割り当てを変更することに。計2箇所かな?『テストの実行』でJavaテストコード実行(by Quick JUnit)同様、[command + 0]でGroovyのテストコードが動くようにしてみた。


  • 実行結果。

  • 実行結果その2。Groovy Power Assertを使った場合。


上記のGroovyクラス/テストクラス作成、またはキー割り当てについてもっと良い・効率的な方法があれば教えて頂けると幸いです。


これでさしあたっての環境は出来たので、後は更にGroovy公式の以下ページ辺りを写経出来ると、Groovy x JUnit 実施については行けそうかな?