単体テスト
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 が定義済みとなります。