EeBlog(テクニカルブログ)

第73回 JUnit4 その1

今回から「JUnit4」について学んでいきます。

JUnitは単体テスト(ユニットテスト)の自動化のためのテスティングフレームワークです。
JUnitのテストコードを実行することで、仕様通り動作するかどうかを素早く確認できます。
公式サイトはこちらで、現在の最新バージョンは4.5となっています。
JUnit4からアノテーションに対応し、従来より簡便に使えるようになりました。


今回はJUnit4で以下のSampleクラスのreturnNullメソッドのテストを行います。
公式からjunit-4.5.jarをダウンロードし、クラスパスに含めてください。
SampleクラスのreturnNullメソッドの仕様はnullを返すこととします。

public class Sample {
     public static Object returnNull() {
         return null;
     }
 }

JUnit4によるテストクラスは以下のように書きます。
@Testというアノテーションは、そのメソッドがテスト用のメソッドであることを示します。
また、Assertクラスを静的インポートしておくとソースが読みやすくなります。

import static org.junit.Assert.*;


 import org.junit.Test;
 import org.junit.runner.JUnitCore;


 public class SampleTest {


     public static void main(String[] args) {
         JUnitCore.main(SampleTest.class.getName());
     }


     @Test
     public void returnNull() {
         assertNull(Sample.returnNull());
     }
 }

SampleTestクラスを実行すると、テスト結果が表示されます。
今回のサンプルではテスト成功しますが、現場ではそう簡単にいかないのが悔しいところです。

ちなみに、JUnit4より前のJUnitでは、テストクラスは以下のように書きます。
TestCaseクラスを継承し、テスト用のメソッドの名前が「test」から始める必要がありました。

import junit.framework.Assert;
 import junit.framework.TestCase;
 import org.junit.runner.JUnitCore;


 public class SampleTest extends TestCase {


     public static void main(String[] args) {
         JUnitCore.main(SampleTest.class.getName());
     }


     public void testReturnNull() {
         Assert.assertNull(Sample.returnNull());
     }
 }

JUnit4では、テストクラスがPOJOにできるようになったことと、命名規則が緩んだことで、より開発が容易になったのです。