ExpectedExceptionBaseAttribute Sınıf
Bu, özel bir birim test beklediğiniz belirten öznitelikler için bir temel sınıftır.
Devralma Hiyerarşisi
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionBaseAttribute
Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute
Ad alanı: Microsoft.VisualStudio.TestTools.UnitTesting
Derleme: Microsoft.VisualStudio.QualityTools.UnitTestFramework (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll içinde)
Sözdizimi
'Bildirim
<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
ExpectedExceptionBaseAttribute türü aşağıdaki üyeleri ortaya koyar.
Oluşturucular
Ad | Açıklama | |
---|---|---|
ExpectedExceptionBaseAttribute() | Yeni bir örneğini başlatır ExpectedExceptionBaseAttribute sınıfı. | |
ExpectedExceptionBaseAttribute(String) | Yeni bir örneğini başlatır ExpectedExceptionBaseAttribute sınıfı. |
Üst
Özellikler
Ad | Açıklama | |
---|---|---|
NoExceptionMessage | Altyapı. | |
TestContext | Altyapı. | |
TypeId | Türetilmiş bir sınıf içerisinde uygulanan, bunun için benzersiz bir tanımlayıcı alır Attribute. (Attribute kaynağından devralındı.) |
Üst
Yöntemler
Ad | Açıklama | |
---|---|---|
Equals | Altyapı. Bu örnek, belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür. (Attribute kaynağından devralındı.) | |
Finalize | Atık toplama işlemi tarafından geri alınmadan önce diğer temizleme işlemleri gerçekleştirmek ve kaynakları boşaltmak denemek bir nesne sağlar. (Object kaynağından devralındı.) | |
GetHashCode | Bu örnek için karma kodunu döndürür. (Attribute kaynağından devralındı.) | |
GetType | Alır Type geçerli örneğinin. (Object kaynağından devralındı.) | |
IsDefaultAttribute | Türetilmiş bir sınıfta geçersiz kılınmış, bu örneğin değeri türetilmiş bir sınıf için varsayılan değer olup olmadığını gösterir. (Attribute kaynağından devralındı.) | |
Match | Türetilmiş bir sınıfta geçersiz kılınmış, bu örnek, belirtilen nesne eşit olup olmadığını gösteren bir değeri döndürür. (Attribute kaynağından devralındı.) | |
MemberwiseClone | Geçerli yüzeysel bir kopyasını oluşturur Object. (Object kaynağından devralındı.) | |
RethrowIfAssertException | Öyleyse yeniden istisna atar bir AssertFailedException veya bir AssertInconclusiveException. | |
ToString | Geçerli nesneyi temsil eden bir dize döndürür. (Object kaynağından devralındı.) | |
Verify | Altyapı. |
Üst
Açık Arabirim Uygulamaları
Ad | Açıklama | |
---|---|---|
_Attribute.GetIDsOfNames | Adlar kümesi dağıtma tanımlayıcıları karşılık gelen bir dizi eşleştirir. (Attribute kaynağından devralındı.) | |
_Attribute.GetTypeInfo | Bir arabirim türü bilgilerini almak için kullanılan bir nesne türü bilgilerini alır. (Attribute kaynağından devralındı.) | |
_Attribute.GetTypeInfoCount | Bir nesne (0 veya 1) sağlar türü bilgileri arabirimi sayısının alır. (Attribute kaynağından devralındı.) | |
_Attribute.Invoke | Özellikleri ve yöntemleri bir nesnesinin kullandığı erişim sağlar. (Attribute kaynağından devralındı.) |
Üst
Notlar
Kendi uygulama özel durumu doğrulama bekleniyordu.ek bilgi ve yerleşik sınıfının yöntemleri ExpectedExceptionAttribute, aşağıdaki gibi işleyemediği gereksinimlerini belirtebilirsiniz:
Özel durumu doğrulanıyor.
Birden fazla özel durum türü bekleniyor.
Yanlış türde özel durum yaratıldığında özel bir ileti görüntülüyor.
Negatif test sonucunu denetliyor.
Öznitelikleri kullanma hakkında daha fazla bilgi için bkz: Öznitelikleri kullanarak meta verileri genişletme.
Örnekler
Aşağıdaki sınıf test etmek için bir yöntem içerir.
using System;
namespace CSExample
{
public class DivisionClass
{
private int fraction;
public int Divide(int numerator, int denominator)
{
return numerator / denominator;
}
}
}
Aşağıdaki özel öznitelik sınıfı, ExpectedArithmeticException, bir özel durum türü ve iletiyi doğrulamak için ExpectedExceptionBaseAttribute sınıfından türetir.ExpectedArithmeticException özniteliği, bir test yöntemi veya System.ArithmeticException türetir türde özel durum yaratmaz doğrular.Ayrıca, özel durum iletisi belirtilen özel durum iletisi eşleştiğini doğrular.Birim test yaratmaz, çünkü geçecek bir DivideByZeroException, hangi türeyen ArithmeticException, ve birim test tarafından atılan özel durum iletisi belirtilen özel durum iletisi eşleştirir.
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);
}
}
}
İş Parçacığı Güvenliği
Bu türün tüm genel statik (Visual Basic'te Shared) üyeleri iş parçacığı açısından güvenlidir. Hiçbir örnek üyesinin iş parçacığı açısından güvenliği garanti edilemez.