ExpectedExceptionAttribute クラス

テスト メソッドの実行時に例外の発生が予測されることを示します。このクラスは継承できません。

名前空間: Microsoft.VisualStudio.TestTools.UnitTesting
アセンブリ: Microsoft.VisualStudio.QualityTools.UnitTestFramework (microsoft.visualstudio.qualitytools.unittestframework.dll 内)

[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple=false)] 
public sealed class ExpectedExceptionAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple=false) */ 
public final class ExpectedExceptionAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple=false) 
public final class ExpectedExceptionAttribute extends Attribute

この属性を使用して、予測される例外がスローされるかどうかをテストします。予測される例外がスローされた場合、テスト メソッドは合格になります。スローされた例外が予測される例外から継承されている場合、テストは不合格になります。

テストに ExpectedException 属性と Assert ステートメントの両方が含まれる場合、どちらかがテストの失敗の原因になっている可能性があります。属性とステートメントのどちらがテストの失敗の原因となったかを判定するには、テストの結果をダブルクリックして [テスト結果の詳細] ページを開きます。テスト結果の詳細については、「報告されたテスト結果」を参照してください。

この属性は、メソッドに対して指定できます。この属性のインスタンスは、メソッドに対して 1 つだけ指定できます。

属性の使用方法の詳細については、「属性を使用したメタデータの拡張」を参照してください。

次のクラスにはテスト対象のメソッドが含まれます。

using System;

namespace MyCSNamespace
{
    public class DivisionClass
    {
        public int Divide(int numerator, int denominator)
        {
            return numerator / denominator;
        }
    }
}

次のテスト メソッドでは、DivisionClass オブジェクトの Divide メソッドがテストされます。DivideByZeroException が存在するかどうかがテストされます。

using Microsoft.VisualStudio.TestTools.UnitTesting;
using MyCSNamespace;

namespace MyCSTestProject
{
    [TestClass()]
    public class DivisionClassTest
    {
        [TestMethod()]
        [ExpectedException(typeof(System.DivideByZeroException))]
        public void DivideTest()
        {
            DivisionClass target = new DivisionClass();
            int numerator = 4;
            int denominator = 0;
            int actual;
            actual = target.Divide(numerator, denominator);
        }
    }
}

System.Object
   System.Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute

この型の public static (Visual Basicでは共有) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
表示: