JUnit

 

JUnit Sourceforge

http://junit.sourceforge.net/

 

JUnit Wiki

http://ja.wikipedia.org/wiki/JUnit

 

 

JUnit3.8.1の場合

 

l         setup()にセットアップロジックをまとめる。

l         assertTrue, assertNotNull, assertNull, assertFalseを使うときは、第一引数がString型のシグネチャを使う。

l         一つのテストメソッドでテストするメソッドは一つ。

l         例外のテストをするときは、例外変数にexpectedという名前をつけると、その例外が期待されていることがわかりやすい。

l         例外のテストをするときは、catchブロックにassertTrue(true)を書いておくとなおわかりやすい。

l         テストオブジェクトは、ドメインオブジェクトと同じパッケージの別のディレクトリに格納する。

l         NetBeans4.1のテストケースクラスは、XxxTestである必要がある。

 

Antビルドファイルの例

<project name="calc" default="test">

 

    <property file="build.proerties"/>

   

    <property name="target.build" location="F:/MyDocuments/Java/JUnitInAction/JUnitZero/build"/>

    <property name="target.buiid.classes" location="${target.build}/classes"/>

    <property name="target.build.test.classes" location="${target.build}/test/classes"/>

 

    <target name="test">

        <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" fork="yes">

            <formatter type="plain" usefile="false"/>

            <test name="calc.CalculatorTest"/>

            <classpath>

                <pathelement location="${target.buiid.classes}"/>

                <pathelement location="${target.build.test.classes}"/>

            </classpath>

        </junit>

    </target>

</project>

 

Antビルドファイルの例2

<target name="test" depends="archive">

       <junit fork="true" haltonfailure="true" haltonerror="true" showoutput="true"

              printsummary="false">

           <classpath refid="class.path"/>

              <classpath>

                     <pathelement location="build/classes"/>

              </classpath>

           <formatter type="plain"/>

           <batchtest fork="yes" todir="test">

             <fileset dir="test">

               <include name="**/*Test.java"/>

             </fileset>

           </batchtest>

       </junit>

</target>

 

JUnit4.1の場合

3.8.1からの変更点

- JDK5.0をベースにしているので、アノテーションやstaticインポート等の5.0固有の機能がふんだんに使われていて、柔軟性が高い

- テスティングフレームワークのパッケージが、junit.frameword.* からorg.juni.* に変わった

- テストクラスがTestCaseクラスを継承する必要がなくなった

- @Beforeアノテーションを指定することで、テストケースを実行する前に実行するメソッド(public)を指定する(3.8.1ではprotected setUp()メソッドで実行していた)

- @Afterアノテーションを指定することで、テストケースを実行した後に実行するメソッド(public)を指定する(3.8.1ではprotected tearDown()メソッドで実行していた)

- テストメソッドにtestXxxという接頭辞をつける代わりに、@Testアノテーションをつけることになった(少なくとも1つは必要、ない場合java.lang.Exception: No runnable methodsが発生。また、戻り値はvoid、引数はなしとしなければならず、そうでない場合やはり例外が投げられる

- assertEquals()等のメソッドはAssertクラスのスタティックメソッドとして定義されているので、import static org.junit.Assert.*として、スタティックインポートして使う。

- @Test(expected = Exception.class) というアノテーションを指定することで例外を期待するという指定が可能(try/catchを書かなくてもよい)

- @Ignoreアノテーションを指定することで、テストケースが未準備で実行させないことを指定することが可能

- 配列を比較するための以下のアサーションメソッドが新たに追加された

         public static void assertEquals(String message, Object[] expecteds, Object[] actuals);
         public static void assertEquals(Object[] expecteds, Object[] actuals);
-                           オートボクシング(intなどを自動的にInteger等に変換するJDK5.0の新機能)により、assertEquals(int, int)等の12のアサーションメソッドが廃止になった
-                           EclipseJUnit4.1を使う場合、Ant1.7以上を使う必要がある。具体的には、
として、ANT_HOMEの場所の変更をEclipseに指示する必要がある。
 
また、プロジェクトにJUnit4のライブラリを追加しておく必要がある。
 
テストランナーもJUnit4にしておく。
 
 
 
 

 

 

 

戻る