Assert クラスを使用するUse the Assert Classes

UnitTestingFramework 名前空間の Assert クラスは、特定の機能を確認するために使用します。Use the Assert classes of the UnitTestingFramework namespace to verify specific functionality. 単体テスト メソッドは開発コード内のメソッドのコードを実行しますが、Assert ステートメントを含める場合にのみコードの動作の正確性を報告します。A unit test method exercises the code of a method in your development code, but it reports the correctness of the code's behavior only if you include Assert statements.

Assert の種類Kinds of Asserts

Microsoft.VisualStudio.TestTools.UnitTesting 名前空間には複数の Assert クラスが用意されています。The Microsoft.VisualStudio.TestTools.UnitTesting namespace provides several kinds of Assert classes:

Assert

テスト メソッドでは、Assert.AreEqual() などの Assert クラスのメソッドをいくつでも呼び出すことができます。In your test method, you can call any number of methods of the Assert class, such as Assert.AreEqual(). Assert クラスには、多くの選択可能なメソッドがあり、それらのメソッドの多くには複数のオーバーロードが存在します。The Assert class has many methods to choose from, and many of those methods have several overloads.

CollectionAssert

CollectionAssert クラスを使用して、オブジェクトのコレクションを比較したり、1 つ以上のコレクションの状態を確認したりします。Use the CollectionAssert class to compare collections of objects, and to verify the state of one or more collections.

StringAssert

StringAssert クラスを使用して、文字列を比較します。Use the StringAssert class to compare strings. このクラスには、StringAssert.Contains、StringAssert.Matches、StringAssert.StartsWith など、さまざまな便利なメソッドが含まれています。This class contains a variety of useful methods such as StringAssert.Contains, StringAssert.Matches, and StringAssert.StartsWith.

AssertFailedException

AssertFailedException 例外は、テストが失敗するたびにスローされます。The AssertFailedException exception is thrown whenever a test fails. タイムアウトした場合、予期しない例外がスローされた場合、または "失敗しました" の結果を出力する Assert ステートメントを含む場合、テストは失敗します。A test fails if it times out, throws an unexpected exception, or contains an Assert statement that produces a Failed result.

AssertInconclusiveException

AssertInconclusiveException は、テストで "結果を作成できません" の結果が出力されるたびにスローされます。The AssertInconclusiveException is thrown whenever a test produces a result of Inconclusive. 通常、まだ編集中のテストに対して、そのテストを実行する準備ができていないことを示すために Assert.Inconclusive ステートメントを追加します。Typically, you add an Assert.Inconclusive statement to a test that you are still working on to indicate it is not yet ready to be run.

注意

別の方法として、実行の準備が整っていないテストに Ignore 属性でマークを付けることもできます。An alternative strategy is to mark a test that is not ready to run with the Ignore attribute. しかし、この方法には、まだ実装していないテストの個数に関するレポートを簡単に生成できないという短所があります。However, this has the disadvantage that you cannot easily generate a report on the number of tests you have left to implement.

UnitTestAssertException

新しい Assert 例外クラスを記述する場合には、そのクラスに基本クラス UnitTestAssertException を継承させると、例外が発生した場合に、その例外がテストや運用コードからスローされた予期しない例外なのか、アサーションによる失敗なのかを識別しやすくなります。If you write a new Assert exception class, having that class inherit from the base class UnitTestAssertException makes it easier to identify the exception as an assertion failure instead of an unexpected exception thrown from your test or production code.

ExpectedExceptionAttribute

テスト メソッドを ExpectedExceptionAttribute 属性で修飾して、開発コード内のメソッドによって例外がスローされることが予期される場合に、例外が実際にそのメソッドでスローされたことを確認します。Decorate a test method with the ExpectedExceptionAttribute attribute when you want the test method to verify that an exception you expect to be thrown by a method in your development code is indeed being thrown in that method.

関連項目See also