D 1.0   D 2.0
About Japanese Translation

Last update Thu Dec 3 22:26:28 2009

単体テスト

UnitTest:
	unittest FunctionBody

単体テストは、クラスが適切に動作しているかのチェックを行う、 一連のテストケースのことです。理想的には単体テストは、 プログラムがコンパイルされるたび毎回実行されるべきです。

単体テストは、以下のように定義される特別な関数です:

unittest
{
    ...test code...
}

モジュール内には、構造体、union、classの中を含めて、 何個でも unittest 関数を置くことができます。 これらはソースコードの先頭方向から順番に実行されます。 スタイルとしては、各関数のための単体テストは、 テスト対象の関数の直後に書かれるべきです。

コンパイラのスイッチ (dmdの場合は-unittest) を指定することで、 生成される実行バイナリにテストコードを含めることができます。 単体テストのコードは、静的な初期化が済んだ後、main() 関数が実行される前に、呼び出されます。

例えば、二つの数を足すクラス Sum ならば:

class Sum
{
    int add(int x, int y) { return x + y; }

    unittest
    {
	Sum sum = new Sum;
	assert(sum.add(3,4) == 7);
	assert(sum.add(-2,0) == -2);
    }
}

Versioning

単体テストが有効な状態でコンパイルしているときは、 バージョン識別子 unittest が定義済みとなります。