Seasarプロジェクトで単体テストを実施する方法[基本編]

Seasarプロジェクトの単体テストは、「S2JUnit4」を使用して行う。
Doltengを使用してプロジェクトを作成した場合は、最初から「S2JUnit4」が使用できる状態になっている。

Seasarには、「S2JUnit4」の他に単体テスト機能として、「S2Unit」が提供されているが、今回は割愛する。<テスト実施方法概要>
1.テスト対象クラス用のテストクラスを作成する
2.テストクラスにテストロジックを記述する
3.テストを実行する<テスト実施方法詳細>

[前提]
下記のクラスをテスト対象として記述している

package jp.co.smp.ut.service;

public class SampleService {
	
	public String sampleMethod(){
		
		return "return_sampleMethod";
	
	}
}

1.テスト対象クラス用のテストクラスを作成する
パッケージエクスプローラー上で、テスト対象のクラスを右クリックし、[S2JUnit4]-[テスティングペアを開く]を選択する。

ダイアログで「テスティングペアがありません。作成しますか?」と尋ねられるので、【はい】ボタンを選択する。

「新規JUnitテストケース」ダイアログが表示される。変更せずに【次へ(N)】ボタンを押す。

テスト対象のメソッドを選択して、【完了(E)】ボタンを押す。

テストクラスが自動生成される。

自動生成されたクラスの内容

package jp.co.smp.ut.service;

import static org.seasar.framework.unit.S2Assert.*;

import org.junit.runner.RunWith;
import org.seasar.framework.unit.Seasar2;

@RunWith(Seasar2.class)
public class SampleServiceTest {

	private SampleService sampleService;

	public void testSampleMethod() {
		fail("まだ実装されていません");
	}

}

自動生成されたテストクラスを編集せずに、一旦実行してみる。
パッケージエクスプローラー上で、テストクラスを右クリックし、[実行(R)]-[2 JUnitテスト(2)]を選択する。

失敗が検出されて、単体テストがNGの状態で終了する。
(単体テストが正常終了の場合は、赤色の帯が緑色になる)


2.テストクラスにテストロジックを記述する
テスト対象のメソッドの実行結果と、期待値を比較して、一致していれば正常とする。

package jp.co.smp.ut.service;

import org.junit.runner.RunWith;
import org.seasar.framework.unit.S2Assert;
import org.seasar.framework.unit.Seasar2;

@RunWith(Seasar2.class)
public class SampleServiceTest {

	private SampleService sampleService;

	public void testSampleMethod() {
		
		//テスト対象のメソッドを実行
		String result = sampleService.sampleMethod();
		
		//実行結果と期待値を比較する
		S2Assert.assertEquals(result, "return_sampleMethod");
	}	
}

S2Assert.assertEqualsメソッドは引数同士を比較して、等しければ正常、異なれば異常として通知する。


3.テストを実行する
パッケージエクスプローラー上で、テストクラスを右クリックし、[実行(R)]-[2 JUnitテスト(2)]を選択する。

緑色の帯が表示され、テストが正常に終了した。

お勧め書籍