ExpectedExceptionBaseAttribute – třída
Toto je základní třída pro atributy, které určují očekávat výjimka ze zkoušky jednotky.
Hierarchie dědičnosti
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionBaseAttribute
Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute
Obor názvů: Microsoft.VisualStudio.TestTools.UnitTesting
Sestavení: Microsoft.VisualStudio.QualityTools.UnitTestFramework (v Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Syntaxe
'Deklarace
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False, Inherited := True)> _
Public MustInherit Class ExpectedExceptionBaseAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public abstract class ExpectedExceptionBaseAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false, Inherited = true)]
public ref class ExpectedExceptionBaseAttribute abstract : public Attribute
[<AbstractClass>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)>]
type ExpectedExceptionBaseAttribute =
class
inherit Attribute
end
public abstract class ExpectedExceptionBaseAttribute extends Attribute
Typ ExpectedExceptionBaseAttribute zveřejňuje následující členy.
Konstruktory
Název | Popis | |
---|---|---|
![]() |
ExpectedExceptionBaseAttribute() | Inicializuje novou instanci ExpectedExceptionBaseAttribute Třída |
![]() |
ExpectedExceptionBaseAttribute(String) | Inicializuje novou instanci ExpectedExceptionBaseAttribute Třída |
Na začátek
Vlastnosti
Název | Popis | |
---|---|---|
![]() |
NoExceptionMessage | Infrastruktura. |
![]() |
TestContext | Infrastruktura. |
![]() |
TypeId | Po implementaci v odvozené třídě získává tento jedinečný identifikátor Attribute. (Zděděno z Attribute.) |
Na začátek
Metody
Název | Popis | |
---|---|---|
![]() |
Equals | Infrastruktura. Vrátí hodnotu, která označuje, zda je zadaný objekt rovna této instance. (Zděděno z Attribute.) |
![]() |
Finalize | Umožňuje zkuste uvolnit prostředky a provádět další operace vyčištění před je převzaty systémem pro uvolnění objektu. (Zděděno z Object.) |
![]() |
GetHashCode | Vrátí kód hash pro tuto instanci. (Zděděno z Attribute.) |
![]() |
GetType | Získává Type aktuální instance. (Zděděno z Object.) |
![]() |
IsDefaultAttribute | Přepsat v odvozené třídě označuje, zda hodnota této instance je výchozí hodnota pro odvozené třídy. (Zděděno z Attribute.) |
![]() |
Match | Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda tato instance se rovná zadaný objekt. (Zděděno z Attribute.) |
![]() |
MemberwiseClone | Vytvoří kopii aktuální Object. (Zděděno z Object.) |
![]() |
RethrowIfAssertException | Vygeneruje výjimku znovu, pokud se jedná AssertFailedException nebo AssertInconclusiveException. |
![]() |
ToString | Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.) |
![]() |
Verify | Infrastruktura. |
Na začátek
Explicitní implementace rozhraní
Název | Popis | |
---|---|---|
![]() ![]() |
_Attribute.GetIDsOfNames | Mapuje sadu názvů identifikátorů odeslání odpovídající sadu. (Zděděno z Attribute.) |
![]() ![]() |
_Attribute.GetTypeInfo | Načte informace o typu objektu, který lze získat informace o rozhraní typu. (Zděděno z Attribute.) |
![]() ![]() |
_Attribute.GetTypeInfoCount | Vyhledá číslo rozhraní typu informací, že objekt obsahuje (0 nebo 1). (Zděděno z Attribute.) |
![]() ![]() |
_Attribute.Invoke | Poskytuje přístup k vlastnostem a metodám vystaven objekt. (Zděděno z Attribute.) |
Na začátek
Poznámky
Implementací ověření očekávaná výjimka. můžete zadat další informace a požadavky, které jsou vestavěné metody třídy ExpectedExceptionAttribute nelze zpracovat, jako například:
Ověření stavu výjimku.
Očekává více než jeden typ výjimky.
Při vyvolání výjimky nesprávný typ zobrazení vlastní zprávu.
Test negativní výsledek řízení.
Další informace o použití atributů viz Rozšíření metadat pomocí atributů.
Příklady
Následující třída obsahuje metodu testování.
using System;
namespace CSExample
{
public class DivisionClass
{
private int fraction;
public int Divide(int numerator, int denominator)
{
return numerator / denominator;
}
}
}
Následující vlastní atribut třídy ExpectedArithmeticException, se odvozuje z třídy ExpectedExceptionBaseAttribute ověřit typ výjimky a zprávy. Atribut ExpectedArithmeticException ověří, že zkušební metody výjimku nebo je odvozen z System.ArithmeticException typu. Také ověří, že zpráva výjimky odpovídá zadané výjimky zprávy. Test jednotky předá, protože ji vyvolá DivideByZeroException, který je odvozen z ArithmeticException, a zpráva výjimky, jež je vyvolána test. jednotka odpovídá zadané výjimky zpráva
using CSExample;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TestProject1
{
public sealed class ExpectedArithmeticException : ExpectedExceptionBaseAttribute
{
private string exceptionMessage;
private string wrongExceptionMessage;
public string WrongExceptionMessage
{
get
{
return wrongExceptionMessage;
}
set
{
wrongExceptionMessage = value;
}
}
public ExpectedArithmeticException(string expectedExceptionMessage) : this(expectedExceptionMessage, "No exception was thrown.")
{
}
public ExpectedArithmeticException(string expectedExceptionMessage, string noExceptionMessage)
: base(noExceptionMessage)
{
exceptionMessage = expectedExceptionMessage;
WrongExceptionMessage = "The exception that was thrown does not derive from System.ArithmeticException.";
}
protected override void Verify(System.Exception exception)
{
Assert.IsNotNull(exception);
// Handle assertion exceptions from assertion failures in the test method, since we are not interested in verifying those
base.RethrowIfAssertException(exception);
Assert.IsInstanceOfType(exception, typeof(System.ArithmeticException), wrongExceptionMessage);
Assert.AreEqual(exceptionMessage, exception.Message, "Could not verify the exception message.");
}
}
[TestClass()]
public class DivisionClassTest
{
/* This test will pass because it thows a System.DivideByZeroException which derives from System.ArithmeticException. */
[TestMethod()]
[ExpectedArithmeticException("Attempted to divide by zero.", "An exception was expected, but no exception was thrown.", WrongExceptionMessage = "The wrong type of exception was thrown.")]
public void DivideTest()
{
DivisionClass target = new DivisionClass();
int numerator = 5;
int denominator = 0;
int actual;
actual = target.Divide(numerator, denominator);
}
}
}
Zabezpečení podprocesu
Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou zabezpečeny pro používání podprocesů. Zabezpečení sdílených členů pro používání podprocesů není zaručeno.