##
3 既存テストコードの再利用

既存のテストコードが有るとき、このテストを`unittest`で実行しようと するために古いテスト関数をいちいち`TestCase`クラスのサブクラスに 変換するのは大変です。

このような場合は、`unittest`では`TestCase`のサブクラスである `FunctionTestCase`クラスを使い、既存のテスト関数をラップします。初 期設定と終了処理も行なえます。

以下のテストコードがあった場合:

    def testSomething():
        something = makeSomething()
        assert something.name is not None
        # ...

テストケースインスタンスは次のように作成します:

    testcase = unittest.FunctionTestCase(testSomething)

初期設定、終了処理が必要な場合は、次のように指定します:

    testcase = unittest.FunctionTestCase(testSomething,
                                         setUp=makeSomethingDB,
                                         tearDown=deleteSomethingDB)

既存のテストスイートからの移行を容易にするため、`unittest`は `AssertionError`の送出でテストの失敗を示すような書き方もサポートしています。 しかしながら、`TestCase.fail*()`および`TestCase.assert*()` メソッドを使って明確に書くことが推奨されています。`unittest`の 将来のバージョンでは、`AssertionError`は別の目的に使用される可能性が有ります。

注意: `FunctionTestCase`を使って既存のテストを`unittest`ベースの テスト体系に変換することができますが、この方法は推奨されません。時間を掛けて `TestCase`のサブクラスに書き直した方が将来的なテストのリファクタリングが 限りなく易しくなります。