##
4 クラスと関数

クラス `TestCase`( | [methodName])

  `TestCase`クラスのインスタンスは、`unittest`の世界における テストの最小実行単位を示しま す。このクラスをベースクラスとして使用し、必要なテストを具象サブクラス に実装します。`TestCase`クラスでは、テストランナーがテストを実行 するためのインターフェースと、各種のチェックやテスト失敗をレポートする ためのメソッドを実装しています。

  それぞれの`TestCase`クラスのインスタンスはただ一つのテストメソッド、 methodNameという名のメソッドを実行します。既に次のような例を扱った ことを憶えているでしょうか。

        def suite():
            suite = unittest.TestSuite()
            suite.addTest(WidgetTestCase('testDefaultSize'))
            suite.addTest(WidgetTestCase('testResize'))
            return suite

  ここでは、それぞれが一つずつのテストを実行するような`WidgetTestCase`の 二つのインスタンスを作成しています。

  methodNameのデフォルトは`'runTest'`です。

クラス `FunctionTestCase`( | testFunc[, setUp[, tearDown[, description]]])

  このクラスでは`TestCase`インターフェースの内、テストランナーがテ ストを実行するためのインターフェースだけを実装しており、テスト結果のチ ェックやレポートに関するメソッドは実装していません。既存のテストコード を`unittest`によるテストフレームワークに組み込むために使用し ます。

クラス `TestSuite`( | [tests])

  このクラスは、個々のテストケースやテストスイートの集約を示します。通常 のテストケースと同じようにテストランナーで実行するためのインタフェース を備えています。`TestSuite`インスタンスを実行することはスイートの 繰り返しを使って個々のテストを実行することと同じです。

  引数testsが与えられるならば、それはテストケースに亘る繰り返し可能オブジェクト または内部でスイートを組み立てるための他のテストスイートでなければなりません。 後からテストケースやスイートをコレクションに付け加えるためのメソッドも提供されています。

クラス `TestLoader`( | )

  モジュールまたは`TestCase`クラスから、指定した条件に従ってテス トをロードし、`TestSuite`にラップして返します。このクラスは与え られたモジュールまたは`TestCase`のサブクラスの中から全てのテス トをロードできます。

クラス `TestResult`( | )

  このクラスはどのテストが成功しどのテストが失敗したかの情報を集積する のに使います。

`defaultTestLoader`
  `TestLoader`のインスタンスで、共用することが目的です。 `TestLoader`をカスタマイズする必要がなければ、新しい `TestLoader`オブジェクトを作らずにこのインスタンスを使用します。

クラス `TextTestRunner`( | [stream[, descriptions[, verbosity]]])

  実行結果を標準エラーに出力する、単純なテストランナー。いくつかの設定項目 がありますが、非常に単純です。グラフィカルなテスト実行アプリケーション では、独自のテストランナーを作成してください。

`main`( | [module[, defaultTest[, argv[, testRunner[, testRunner]]]]])

  テストを実行するためのコマンドラインプログラム。この関数を使えば、 簡単に実行可能なテストモジュールを作成する事ができます。 一番簡単なこの関数の使い方は、以下の行をテストスクリプトの最後に置くことです。

      if __name__ == '__main__':
          unittest.main()

場合によっては、`doctest` モジュールを使って書かれた 既存のテストがあります。その場合、モジュールは 既存の`doctest`に基づいたテストコードから `unittest.TestSuite` インスタンスを 自動的に構築できる `DocTestSuite` クラスを提供します。 バージョン 2.3 で 新たに追加 された仕様です。