##
5.3.5 TestCase オブジェクト

`TestCase`クラスのインスタンスは個別のテストをあらわすオブジェクト ですが、`TestCase`の具象サブクラスには複数のテストを定義する事がで きます -- 具象サブクラスは、特定のfixture(テスト設備)を示している、と考 えてください。fixtureは、それぞれのテストケースごとに作成・解放されま す。

`TestCase`インスタンスには、次の3種類のメソッドがあります:テストを 実行するためのメソッド・条件のチェックやテスト失敗のレポートのためのメソ ッド・テストの情報収集に使用する問い合わせメソッド。

テストを実行するためのメソッドを以下に示します:

`setUp`( | )

  テストを実行する直前に、fixtureを作成する為に呼び出されます。このメソ ッドを実行中に例外が発生した場合、テストの失敗ではなくエラーとされま す。デフォルトの実装では何も行いません。

`tearDown`( | )

  テストを実行し、結果を記録した直後に呼び出されます。テスト実行中に例外 が発生しても呼び出されますので、内部状態に注意して処理を行ってくださ い。メソッドを実行中に例外が発生した場合、テストの失敗ではなくエラーと みなされます。このメソッドは、`setUp()`が正常終了した場合にはテ ストメソッドの実行結果に関わり無く呼び出されます。デフォルトの実装では 何も行いません。

`run`( | [result])

  テストを実行し、テスト結果をresultに指定されたテスト結果オブジェ クトに収集します。resultがNoneか省略された場合、一時的な結果オブ ジェクトを生成して使用しますが呼び出し元には渡されません。このメソッド は、`TestCase`インスタンスの呼び出しと等価です。

`debug`( | )

  テスト結果を収集せずにテストを実行します。例外が呼び出し元に通知される ため、テストをデバッガで実行することができます。

テスト結果のチェックとレポートには、以下のメソッドを使用してください。

`assert_`( | expr[, msg])

`failUnless`( | expr[, msg])

  exprが偽の場合、テスト失敗を通知します。msgにはエラーの説 明を指定するか、または`None`を指定してください。

`assertEqual`( | first, second[, msg])

`failUnlessEqual`( | first, second[, msg])

  firstとsecond exprが等しくない場合、テスト失敗を通知 します。エラー内容はmsgに指定された値か、または`None`となり ます。`failUnlessEqual()`ではmsgのデフォルト値は firstとsecondを含んだ文字列となりますので、 `failUnless()`の第一引数に比較の結果を指定するよりも便利です。

`assertNotEqual`( | first, second[, msg])

`failIfEqual`( | first, second[, msg])

  firstとsecond exprが等しい場合、テスト失敗を通知しま す。エラー内容はmsgに指定された値か、または`None`となりま す。`failUnlessEqual()`ではmsgのデフォルト値はfirst とsecondを含んだ文字列となりますので、`failUnless()`の第 一引数に比較の結果を指定するよりも便利です。

`assertAlmostEqual`( | first, second[, places[, msg]])

`failUnlessAlmostEqual`( | first, second[, places[, msg]])

  first と second を places で与えた少数位で値を丸めて差分を計算し、 ゼロと比較することで、近似的に等価であるかどうかをテストします。 指定少数位の比較というものは指定有効桁数の比較ではないので注意してください。 値の比較結果が等しくなかった場合、テストは失敗し、msg で与えた 説明か、`None` を返します。

`assertNotAlmostEqual`( | first, second[, places[, msg]])

`failIfAlmostEqual`( | first, second[, places[, msg]])

  first と second を places で与えた少数位で値を丸めて差分を計算し、 ゼロと比較することで、近似的に等価でないかどうかをテストします。 指定少数位の比較というものは指定有効桁数の比較ではないので注意してください。 値の比較結果が等しかった場合、テストは失敗し、msg で与えた 説明か、`None` を返します。

`assertRaises`( | exception, callable, ...)

`failUnlessRaises`( | exception, callable, ...)

  callableを呼び出し、発生した例外をテストします。 `assertRaises()`には、任意の位置パラメータとキーワードパラメー タを指定する事ができます。exceptionで指定した例外が発生した場合 はテスト成功とし、それ以外の例外が発生するか例外が発生しない場合にテス ト失敗となります。複数の例外を指定する場合には、例外クラスのタプルを exceptionに指定します。

`failIf`( | expr[, msg])

  `failIf()`は`failUnless()`の逆で、exprが真の場合、 テスト失敗を通知します。エラー内容はmsgに指定された値か、または `None`となります。

`fail`( | [msg])

  無条件にテスト失敗を通知します。エラー内容はmsgに指定された値 か、または`None`となります。

`failureException`
  `test()`メソッドが送出する例外を指定するクラス属性。テストフ レームワークで追加情報を持つ等の特殊な例外を使用する場合、この例外のサ ブクラスとして作成します。この属性の初期値は`AssertionError` です。

テストフレームワークは、テスト情報を収集するために以下のメソッドを使用し ます:

`countTestCases`( | )

  テストオブジェクトに含まれるテストの数を返します。`TestCase`イン スタンスは常に`1`を返します。`TestSuite`クラスでは`1` 以上を返します。

`defaultTestResult`( | )

  オブジェクトが実行するテストの、デフォルトのテスト結果オブジェクトの型 を返します。

`id`( | )

  テストケースを特定する文字列を返します。通常、idはモジュール名・ クラス名を含む、テストメソッドのフルネームを指定します。

`shortDescription`( | )

  テストの説明を一行分、または説明がない場合には`None`を返します。 デフォルトでは、テストメソッドのdocstringの先頭の一行、または `None`を返します。