Improve this page
Github へのログインが必要です。
簡単な修正は、ここから fork、オンライン編集、pull request ができます。
大きな修正については、
通常の clone で行って下さい。
Page wiki
関連するWikiページを参照・編集
English
このページの英語版(原文)
単体テスト
UnitTest:
unittest FunctionBody
単体テストは、クラスが適切に動作しているかのチェックを行う、 一連のテストケースのことです。理想的には単体テストは、 プログラムがコンパイルされるたび毎回実行されるべきです。
単体テストは、以下のように定義される特別な関数です:
unittest {
...test code...
}
モジュール内には、構造体、union、classの中を含めて、 何個でも unittest 関数を置くことができます。 これらはソースコードの先頭方向から順番に実行されます。 スタイルとしては、各関数のための単体テストは、 テスト対象の関数の直後に書かれるべきです。
コンパイラのスイッチ、dmd では -unittest fを指定することで、 生成される実行バイナリにテストコードを含めることができます。 単体テストのコードは、静的な初期化が済んだ後、 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);
}
}
バージョン指定
単体テストが有効な状態でコンパイルしているときは、 バージョン識別子 unittest が定義済みとなります。