Assert クラスの使用
UnitTestingFramework 名前空間の Assert クラスは、個別の機能を確認するために使用します。単体テスト メソッドは、開発コード内のメソッドのコードを実行しますが、ステートメントを保持する含まれている場合にのみコードの動作がの正確さ報告します。
Assert の種類
Microsoft.VisualStudio.TestTools.UnitTesting 名前空間には複数の Assert クラスが用意されています。
テスト メソッドでは、Assert.AreEqual() などの Assert クラスのメソッドを任意の数だけ呼び出すことができます。Assert クラスには、多くの選択可能なメソッドがあり、それらのメソッドの多くには複数のオーバーロードが存在します。
CollectionAssert クラスを使用して、オブジェクトのコレクションを比較したり、1 つ以上のコレクションの状態を確認したりします。
StringAssert クラスを使用して、文字列を比較します。このクラスには、StringAssert.Contains、StringAssert.Matches、StringAssert.StartsWith など、さまざまな便利なメソッドが含まれています。
AssertFailedException 例外は、テストが失敗すると常にスローされます。タイムアウトした場合、予期しない例外がスローされた場合、または "失敗しました" の結果を出力する Assert ステートメントを含む場合、テストは失敗します。
AssertInconclusiveException は、テストで "結果を作成できません" の結果が出力されると常にスローされます。通常 Assert.Inconclusive ステートメントは、まだ編集中のテストに対して、そのテストを実行する準備ができていないことを示すために追加します。
[!メモ]
他の方法としては、実行の準備が整っていないテストに Ignore 属性を設定して示す方法もあります。ただし、この方法には、まだ実装していないテストの個数に関するレポートを簡単に作成できないという短所があります。
新規の Assert 例外クラスを作成する場合には、そのクラスに UnitTestAssertException 基本クラスを継承させると、例外が発生した場合に、その例外がテストや製品コードからスローされた予期しない例外なのか、アサーションによる失敗なのかを識別しやすくなります。
ExpectedExceptionAttribute 属性をテスト メソッドで使用して、開発コード内のメソッドによって例外がスローされることが予期される場合に、例外が実際にそのメソッドでスローされたかを確認します。
参照
関連項目
Microsoft.VisualStudio.TestTools.UnitTesting