Поделиться через


ExpectedExceptionAttribute - класс

Указывает, что во время выполнения метода теста ожидается исключение. Этот класс не наследуется.

Иерархия наследования

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

Пространство имен:  Microsoft.VisualStudio.TestTools.UnitTesting
Сборка:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (в Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Синтаксис

'Декларация
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False, Inherited := True)> _
Public NotInheritable Class ExpectedExceptionAttribute _
    Inherits ExpectedExceptionBaseAttribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class ExpectedExceptionAttribute : ExpectedExceptionBaseAttribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false, Inherited = true)]
public ref class ExpectedExceptionAttribute sealed : public ExpectedExceptionBaseAttribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)>]
type ExpectedExceptionAttribute =  
    class
        inherit ExpectedExceptionBaseAttribute
    end
public final class ExpectedExceptionAttribute extends ExpectedExceptionBaseAttribute

Тип ExpectedExceptionAttribute предоставляет следующие члены.

Конструкторы

  Имя Описание
Открытый метод ExpectedExceptionAttribute(Type) Инициализация нового экземпляра класса ExpectedExceptionAttribute с ожидаемым исключением.
Открытый метод ExpectedExceptionAttribute(Type, String) Выполняет инициализацию нового экземпляра класса ExpectedExceptionAttribute с помощью типа ожидаемого исключения и сообщения, содержащего описание исключения.

В начало страницы

Свойства

  Имя Описание
Открытое свойство AllowDerivedTypes
Открытое свойство ExceptionType Получает ожидаемый тип исключения.
Защищенное свойство NoExceptionMessage Инфраструктура. (Унаследовано от ExpectedExceptionBaseAttribute.)
Защищенное свойство TestContext Инфраструктура. (Унаследовано от ExpectedExceptionBaseAttribute.)
Открытое свойство TypeId При реализации в производном классе возвращает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute.)

В начало страницы

Методы

  Имя Описание
Открытый метод Equals Инфраструктура. Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetHashCode Возвращает хеш-код данного экземпляра. (Унаследовано от Attribute.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый метод IsDefaultAttribute При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute.)
Открытый метод Match При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Защищенный метод RethrowIfAssertException Снова создает это исключение, если это исключение AssertFailedException или AssertInconclusiveException. (Унаследовано от ExpectedExceptionBaseAttribute.)
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)
Защищенный метод Verify Инфраструктура. (Унаследовано от ExpectedExceptionBaseAttribute.)

В начало страницы

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытый метод _Attribute.GetIDsOfNames Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfo Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfoCount Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.Invoke Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute.)

В начало страницы

Заметки

Данный атрибут используется для проверки, возникло ли ожидаемое исключение. Метод теста пройдет, если ожидаемое исключение возникло. Метод теста завершится с ошибкой, возникшее исключение наследуется из ожидаемого исключения.

Если тест имеет как атрибут ExpectedException, так и оператор Assert, любой из них может привести к завершению теста с ошибкой. Чтобы определить, атрибут или оператор привел к завершению теста с ошибкой, откройте для теста страницу "Подробные сведения", дважды щелкнув на результате теста. Дополнительные сведения о результатах теста см. в разделе Получение результатов теста.

Этот атрибут можно указывать в методе. В методе может быть только один экземпляр данного атрибута.

Дополнительные сведения об использовании атрибутов см. в разделе Расширение метаданных с помощью атрибутов.

Примеры

Следующий класс содержит тестируемый метод:

using System;

namespace MyCSNamespace
{
    public class DivisionClass
    {
        public int Divide(int numerator, int denominator)
        {
            return numerator / denominator;
        }
    }
}
Public Class DivisionClass
   Public Function Divide(ByVal numerator As Integer, ByVal denominator As Integer) As Integer
      Return numerator \ denominator
   End Function
End Class

В следующем методе теста тестируется метод Divide объекта DivisionClass. Выполняется проверка существования 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);
        }
    }
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports MyVBProject

<TestClass()> _
Public Class DivisionClassTest
    <TestMethod()> _
    <ExpectedException(GetType(System.DivideByZeroException), "MyMessage")> _
    Public Sub DivideTest()
        Dim target As DivisionClass = New DivisionClass
        Dim numerator As Integer = 4
        Dim denominator As Integer = 0
        Dim actual As Integer
        actual = target.Divide(numerator, denominator)
    End Sub
End Class

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.TestTools.UnitTesting - пространство имен