DataSourceAttribute Sınıf
Verilere bağlı 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ıfaBu örnek ayar adıyla 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ıfaBu ö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ıfaBu ö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 | Bir 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 sağlayıcısı veri kaynağının 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 bir benzersiz 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 | Kaynakları boşaltın ve atık toplama işlemi tarafından iadesi önce diğer temizleme işlemleri gerçekleştirmek nesne izin verir. (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 bir örneği. (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ı.) |
![]() |
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
Açıklamalar
DataSourceAttribute Sınıfı, veri kaynağı bilgilerini veri güdümlü sınamaları belirlemek için iki yol sağlar Birincisi bir bağlantı dizesi sağlayıcı bilgileri aracılığıyla 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ını örneği:
[DataSource("dataSourceNameFromConfigFile")]
Not
Farklı veri sağlayıcılar farklı bağlantı dizeleri kullanır. Sağlayıcısının adı, bağlantı dizesini bir parçasıdır.
Kullanma hakkında daha fazla bilgi için app.config dosya veri kaynağını belirtmek için bkz: Walkthrough: veri kaynağı tanımlamak için bir yapılandırma dosyası kullanma.
Veri uygulamalı testleri hakkında daha fazla bilgi için bkz: Overview of Data-Driven Unit Tests.
Öznitelikleri kullanma hakkında daha fazla bilgi için bkz: Extending Metadata Using Attributes.
Ö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.
Name |
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: Bir veri temelli birim sınaması oluşturmak