dotTEST -.NET対応自動テストツール-
機能紹介 - テストケース・スタブの自動生成
単体テストに必要なすべてを自動生成
単体テストを実施するには、テストケースのほかに、テスト対象のプログラムを呼び出すテストハーネス、テスト対象のプログラムから呼び出されている外部のプログラムを置き換えるテストスタブが必要です。dotTESTは、テストに必要なすべてを自動的に準備するため、手動でコードを書かなくても、すぐにテストを始められます。
単体テストケースの自動生成
dotTESTの単体テストケース自動生成機能を利用すると、さまざまな入力値を使用した多数のテストケースをすばやく作成できます。自動生成テストケースによるテストを実施すると、メソッドに予期しない値が渡された場合に例外が発生しないかを検証でき、アプリケーションの堅牢性が向上します。また、少ない工数で高いテストカバレッジを達成するのにも役立ちます。
自動生成テストケースで使用する入力値や、1つのメソッドに対して生成するテストケース数の上限などをdotTESTの設定画面から指定できるので、テストのニーズに合わせた適切な数のテストケースを生成できます。
自動生成テストケースで使用する入力値や、1つのメソッドに対して生成するテストケース数の上限などをdotTESTの設定画面から指定できるので、テストのニーズに合わせた適切な数のテストケースを生成できます。
自動生成されるテストケースでは、テスト対象のメソッドに渡す値として以下を使用できます。
- ファクトリ メソッド
- ファクトリ メソッド(テストで使用されるクラスのインスタンスを返すメソッド)を呼び出してインスタンスを取得します。ファクトリ メソッドは、テストケースの生成の前に自動または手動で作成します。
- 境界値
- 0、int.Max、string.Emptyなど、型ごとの最小値、最大値、ゼロ値を使用します。
- ヒューリスティック
- メソッドを分析して、if 分岐条件として使われている値など、より広範囲のコードをカバーできるような値を選択します。
- ランダム値
- ランダムに生成された値を使用します。
- Null 値
- 複合型に対してnull値を使用します。
テストケース自動生成のパラメーター設定
テストケースはNUnit形式のソースコードとして生成されるので、作成後に手動で編集できます。自動生成されたテストケースをテンプレートとして利用すると、メソッドが仕様どおりに動作するかを検証するユーザー定義のテストケース(ブラックボックステスト)をわずかな手間で作成できます。
自動生成テストケースのカスタマイズや、ユーザー定義テストを作成するその他の方法については、テストケースのカスタマイズを参照してください。
スタブの自動生成
スタブを利用すると、テスト対象のクラスやメソッドを外部から切り離して検証できます。外部メソッドの呼び出しによってデータベースやディスクのファイル等の外部環境が変更されてしまうのを防ぎたい場合、または外部メソッドの特定の動作を簡単にシミュレートしたい場合などにスタブを利用できます。dotTESTでは、スタブウィザードを利用して自動的にスタブを生成できます。

スタブウィザードのオプションを指定することで、テストのニーズに合わせて、生成されるスタブの適用範囲やスタブの返す値を制御できます。
スタブウィザードのオプションを指定することで、テストのニーズに合わせて、生成されるスタブの適用範囲やスタブの返す値を制御できます。
- メソッド固有のスタブ
- すべてのテストケースで、特定の外部メソッドの代わりに呼び出されるスタブです。すべてのテストケースでスタブから常に同じ値を返す場合に使用します。
- テスト固有のスタブ
- 特定のテストケースで、特定の外部メソッドの代わりに呼び出されるスタブです。テストケースごとにスタブから異なる値を返す必要がある場合に使用します。
スタブの返す値の制御
- オリジナルのメソッドを呼び出す
- スタブ化対象の元のメソッドに呼び出しをリダイレクトします。スタブを自動生成した後で、呼び出しの前後に手動で処理を追加して、メソッドの振る舞いを制御することもできます。
- 単純な値を返す
- 戻り値の型に基づいて、ゼロやnullなどの単純な値を返します。
スタブ生成ウィザード
dotTESTには、.NET Frameworkの標準ライブラリのSystem.IO.StreamWriterクラスのメソッドなど、スタブ化されることの多いメソッドのスタブがあらかじめ付属しているので、すばやく単体テストケースの作成を始められます。
テストケースと同様に、スタブもソースコードとして生成されるため、手動での編集が可能です。dotTEST付属のスタブについても、ソースコードが提供されているので、ニーズに合わせてスタブの動作をカスタマイズできます。














