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)]を選択する。
お勧め書籍