junit.framework
クラス TestCase

java.lang.Object
  |
  +--junit.framework.Assert
        |
        +--junit.framework.TestCase
すべての実装インタフェース:
Test
直系の既知のサブクラス:
ExceptionTestCase

public abstract class TestCase
extends Assert
implements Test

様々なテストを行うためのメソッドを定義します。
テストケースを実行するクラスを作成するためには:
 1)TestCaseを継承(extends)します。
 2)テスト対象を格納する変数を定義します。
 3)setUpメソッドをオーバーライドし、テスト対象を初期化します。
 4)tearDownメソッドをオーバーライドし、テスト対象の後処理を行います。
上記で定義したメソッドの実行は、当クラス中の他のメソッドに影響を与えません。
(TestRunnerは、各テストメソッドをそれぞれ別のインスタンスで実行します。)
下記に例を示します。:

 public class MathTest extends TestCase {
     protected double fValue1;
     protected double fValue2;

     protected void setUp() {
         fValue1 = 2.0;
         fValue2 = 3.0;
     }
 }
 
それぞれのテストのために、テスト対象の機能を確認するメソッドを宣言・実装します。
下記の例では、boolean値を引数とするassertTrueメソッドを呼ぶことにより、
想定結果と実行結果を比較し、テスト対象の機能を確認しています。
    public void testAdd() {
        double result = fValue1 + fValue2;
        assertTrue(result == 5.0);
    }
 
一旦メソッドを定義すれば、それらを実行することができます。
JUnitフレームワークはテストを実行する方法として、静的な方法、および
より動的な方法の両方をサポートします。
静的な方法では、runTestメソッドをオーバーライドし、起動方法を定義します。
そのための便利な方法は、内部の匿名クラスの中に作成することです。
 TestCase test = new MathTest("add") {
        public void runTest() {
            testAdd();
        }
 };
 test.run();
 
動的な方法は、runTestを実装するためにjava.lang.reflectを使用します。
この方法では、動的にメソッドを見つけて実行します。
この場合、コンストラクタに渡すテストケースの名前は、
実行されるテストメソッド名を指定します。
 TestCase test = new MathTest("testAdd");
 test.run();
 
TestSuiteクラスを利用することで、複数のテストを連続実行することができます。
JUnitは、連続して複数のテストを実行することができ、結果を集めることができる
様々なtest runnnerを提供します。
test runnnerは、テストを走らせる起動箇所としてのstaticメソッド あるいはsuiteを自動的に抽出することのどちらかを期待します。
 TestSuite suite = new TestSuite(); // この行は訳者が追記しました
 public static Test suite() {
      suite.addTest(new MathTest("testAdd"));
      suite.addTest(new MathTest("testDivideByZero"));
      return suite;
 }
 

関連項目:
TestResult, TestSuite

コンストラクタの概要
TestCase()
          連続実行を可能にする引数なしコンストラクタ。
TestCase(java.lang.String name)
          テストケースのメソッド名を引数とするコンストラクタ。
 
メソッドの概要
 int countTestCases()
          当クラスのrun(TestResult result)メソッドによって実行された
テストケース数を返却します。
protected  TestResult createResult()
          デフォルトのTestResultオブジェクトを生成します。
 java.lang.String getName()
          テストケースの名前(メソッド名)を取得します。
 TestResult run()
          引数にTestResultクラスのインスタンスを指定しない、簡易なテスト実行メソッドです。
 void run(TestResult result)
          テストケースを実行し、実行結果を引数で与えられたTestResultクラスのインスタンスに格納します。
 void runBare()
          単一のテストメソッドを順に実行します。
protected  void runTest()
          当クラスのコンストラクタ、またはsetName(String name)で指定した
テストメソッドを検出し、実行します。
 void setName(java.lang.String name)
          テストケースの名前(メソッド名)を設定します。
protected  void setUp()
          テストの実行に際して、事前のセットアップを行います。
protected  void tearDown()
          テストの実行に際して、事後の終了処理を行います。
 java.lang.String toString()
          TestCaseクラスの文字列表現(完全限定名)を返却します。
 
クラス junit.framework.Assert から継承したメソッド
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

TestCase

public TestCase()
連続実行を可能にする引数なしコンストラクタ。
このコンストラクタは、setName()メソッドを呼ばずに使用されるようには、
意図されていません。
(訳者注)setName()メソッドを呼び出さずに使用しても、特に問題はありません。


TestCase

public TestCase(java.lang.String name)
テストケースのメソッド名を引数とするコンストラクタ。

メソッドの詳細

countTestCases

public int countTestCases()
当クラスのrun(TestResult result)メソッドによって実行された
テストケース数を返却します。
デフォルトでは、常に1を返します。

定義:
インタフェース Test 内の countTestCases

createResult

protected TestResult createResult()
デフォルトのTestResultオブジェクトを生成します。

関連項目:
TestResult

run

public TestResult run()
引数にTestResultクラスのインスタンスを指定しない、簡易なテスト実行メソッドです。
デフォルトのTestResultクラスのインスタンスに実行結果を格納します。

関連項目:
TestResult

run

public void run(TestResult result)
テストケースを実行し、実行結果を引数で与えられたTestResultクラスのインスタンスに格納します。

定義:
インタフェース Test 内の run

runBare

public void runBare()
             throws java.lang.Throwable
単一のテストメソッドを順に実行します。

例外:
java.lang.Throwable - あらゆる例外が発生します

runTest

protected void runTest()
                throws java.lang.Throwable
当クラスのコンストラクタ、またはsetName(String name)で指定した
テストメソッドを検出し、実行します。
テストを実行するためにオーバーライドするメソッドです。

例外:
java.lang.Throwable - あらゆる例外が発生します

setUp

protected void setUp()
              throws java.lang.Exception
テストの実行に際して、事前のセットアップを行います。
例として、ネットワークコネクションを確立したりします。
このメソッドはテストメソッドが実行される前に呼び出されます。

java.lang.Exception

tearDown

protected void tearDown()
                 throws java.lang.Exception
テストの実行に際して、事後の終了処理を行います。
例として、ネットワークコネクションを切断したりします。
このメソッドはテストメソッドが実行された後に呼び出されます。

java.lang.Exception

toString

public java.lang.String toString()
TestCaseクラスの文字列表現(完全限定名)を返却します。

オーバーライド:
クラス java.lang.Object 内の toString
戻り値:
String 当クラスの完全限定名

getName

public java.lang.String getName()
テストケースの名前(メソッド名)を取得します。

戻り値:
String TestCaseの名前(メソッド名)

setName

public void setName(java.lang.String name)
テストケースの名前(メソッド名)を設定します。

パラメータ:
name - TestCaseの名前(メソッド名)