DataSourceAttribute Sınıf
Verilere sınama veri kaynağına özgü bilgiler sağlar.Bu sınıf devralınamaz.
Devralma Hiyerarşisi
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute
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)> _
Public NotInheritable Class DataSourceAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class DataSourceAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class DataSourceAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type DataSourceAttribute =
class
inherit Attribute
end
public final class DataSourceAttribute extends Attribute
DataSourceAttribute türü aşağıdaki üyeleri ortaya koyar.
Oluşturucular
Ad | Açıklama | |
---|---|---|
DataSourceAttribute(String) | Yeni bir örneğini başlatır DataSourceAttribute sınıfı.Bu örnek, ayar adı ile ilişkili bir veri sağlayıcısı ve bağlantı dizesi ile başlatılır. | |
DataSourceAttribute(String, String) | Yeni bir örneğini başlatır DataSourceAttribute sınıfı.Bu örnek, bir bağlantı dizesi ve tablo adı ile başlatılır. | |
DataSourceAttribute(String, String, String, DataAccessMethod) | Yeni bir örneğini başlatır DataSourceAttribute sınıfı.Bu örnek, bir veri sağlayıcı, bağlantı dizesi, veri tablosu ve veri erişim yöntemi ile veri kaynağına erişmek için başlatılır. |
Üst
Özellikler
Ad | Açıklama | |
---|---|---|
ConnectionString | Bağlantı dizesi veri kaynağı için gösteren bir değeri alır. | |
DataAccessMethod | Veri kaynağına erişmek için kullanılan yöntemi alır. | |
DataSourceSettingName | Yapılandırma dosyasında depolanan veri kaynağı bağlantı bilgilerini tanımlamak için kullanılan ayar adını gösteren bir değeri alır. | |
ProviderInvariantName | Veri kaynağının veri sağlayıcısı gösteren bir değeri alır. | |
TableName | Verileri sağlayan tablo adını gösteren bir değeri alır. | |
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ı.) | |
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ı.) | |
ToString | Geçerli nesneyi temsil eden bir dize döndürür. (Object kaynağından devralındı.) |
Üst
Alanlar
Ad | Açıklama | |
---|---|---|
DefaultDataAccessMethod | Varsayılan veri erişim yöntemi temsil eder.Bu alan salt okunurdur. | |
DefaultProviderName | Varsayılan veri sağlayıcısını adını temsil eder.Bu alan salt okunurdur. |
Ü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
DataSourceAttribute Sınıfı, veri belirtmek için iki yolla kaynak verilere sınaması için bilgi sağlar.Birinci yol sağlayıcısı bilgilerini bir bağlantı dizesi yoluyla bilgi belirtir ve kaynak tablo adı geçirilen DataSourceAttribute.
Bağlantı dizesi örneği:
[DataSource("Provider=SQLOLEDB.1;Data Source=MySource;Integrated] Security=SSPI;Initial Catalog=MyCatalog;Persist Security Info=False", "MyTable")]
İkinci yolu bulunan yapılandırma ayarı belirtir özniteliği tek bir argüman iletir app.config dosyası.
Yapılandırma ayarı örneği:
[DataSource("dataSourceNameFromConfigFile")]
[!NOT]
Farklı veri sağlayıcılar farklı bağlantı dizeleri kullanır.Sağlayıcının adını bağlantı dizesinin parçasıdır.
Kullanma hakkında daha fazla bilgi için app.config dosya veri kaynağını belirtmek için bkz: İzlenecek yol: bir veri kaynağı tanımlamak için bir yapılandırma dosyası kullanılıyor..
Verilere testleri hakkında daha fazla bilgi için bkz: Data-Driven Unit Tests.
Öznitelikleri kullanma hakkında daha fazla bilgi için bkz: Öznitelikleri kullanarak meta verileri genişletme.
Örnekler
Sınıf ve test yöntemi şu kodu içerir.
using System;
namespace BankAccountNS
{
public class BankAccount
{
private string custName;
private double bal;
public BankAccount(string customerName, double balance)
{
custName = customerName;
bal = balance;
}
public double Balance
{ get { return bal; } }
public void Debit(double amount)
{
if (amount < 0)
throw new ArgumentOutOfRangeException("amount");
bal -= amount;
}
}
}
Imports System
Namespace BankAccountNS
Public Class BankAccount
Private customerName As String
Private bal As Double
Public Sub New(ByVal customerName2 As String, ByVal balance As Double)
customerName = customerName2
bal = balance
End Sub
Public ReadOnly Property Balance() As Double
Get
Return bal
End Get
End Property
Public Sub Debit(ByVal amount As Double)
If amount < 0 Then
Throw New ArgumentOutOfRangeException("amount")
End If
bal -= amount
End Sub
End Class
End Namespace
Aşağıdaki sınama geçirir.Bu, aşağıdaki verileri tablo1 de içeren sample.mdb access veritabanını kullanır.
Ad |
Bakiye |
Tutar |
---|---|---|
Jorg Bott |
100 |
25 |
Pedro Ruivo |
70 |
60 |
Mandar Samant |
75 |
71.25 |
Reha King |
159 |
158 |
Haz Cao |
11.99 |
11.22 |
Dikkat DataAccessMethod ardışık değil.
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BankAccountNS;
using System;
namespace MyCSTestProject
{
[TestClass()]
public class BankAccountTest
{
private TestContext testContextInstance;
public TestContext TestContext
{
get { return testContextInstance; }
set { testContextInstance = value; }
}
[TestMethod()]
[DataSource("System.Data.OleDb",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"C:\\sample.mdb\"",
"Table1",
DataAccessMethod.Sequential)]
public void DebitTest()
{
string customerName = testContextInstance.DataRow["Name"].ToString();
double bal = Convert.ToDouble(testContextInstance.DataRow["Balance"]);
double amt = Convert.ToDouble(testContextInstance.DataRow["Amount"]);
double newBalance = bal - amt;
BankAccount target = new BankAccount(customerName, bal);
target.Debit(amt);
Assert.AreEqual(newBalance, target.Balance, .00);
}
}
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports BankAccountNS
Imports System
Namespace TestProject1
<TestClass()> _
Public Class BankAccountTest
Private testContextInstance As TestContext
Public Property TestContext() As TestContext
Get
Return testContextInstance
End Get
Set(ByVal Value As TestContext)
testContextInstance = Value
End Set
End Property
<TestMethod()> _
<DataSource("System.Data.OleDb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""D:\sample.mdb""", _
"Table1", DataAccessMethod.Sequential)> _
Public Sub DebitTest()
Dim customerName As String = testContextInstance.DataRow("Name").ToString()
Dim balance As Double = Convert.ToDouble(testContextInstance.DataRow("Balance"))
Dim amount As Double = Convert.ToDouble(testContextInstance.DataRow("Amount"))
Dim NewBalance As Double = balance - amount
Dim target As BankAccount = New BankAccount(customerName, balance)
target.Debit(amount)
Assert.AreEqual(NewBalance, target.Balance, 0.0)
End Sub
End Class
End Namespace
İş 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.
Ayrıca bkz.
Başvuru
Microsoft.VisualStudio.TestTools.UnitTesting Ad Alanı
Diğer Kaynaklar
Nasıl yapılır: veri güdümlü birim test oluşturma