Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zawiera informacje specyficzne dla źródła danych do badań opartych na danych.Klasa ta nie może być dziedziczona.
Hierarchia dziedziczenia
Object
Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute
Przestrzeń nazw: Microsoft.VisualStudio.TestTools.UnitTesting
Zestaw: Microsoft.VisualStudio.QualityTools.UnitTestFramework (w Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Składnia
'Deklaracja
<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
Typ DataSourceAttribute uwidacznia następujące elementy członkowskie.
Konstruktorzy
Nazwa | Opis | |
---|---|---|
![]() |
DataSourceAttribute(String) | Inicjuje nowe wystąpienie klasy DataSourceAttribute. To wystąpienie zostaną zainicjowane z ciągu połączenia i Dostawca danych skojarzonych z nazwą ustawienie. |
![]() |
DataSourceAttribute(String, String) | Inicjuje nowe wystąpienie klasy DataSourceAttribute.To wystąpienie zostaną zainicjowane z nazwą połączenia ciąg i tabeli. |
![]() |
DataSourceAttribute(String, String, String, DataAccessMethod) | Inicjuje nowe wystąpienie klasy DataSourceAttribute. To wystąpienie zostaną zainicjowane z dostawcy danych, ciąg połączenia, tabela danych i metody dostępu do uzyskiwania dostępu do źródła danych. |
Początek
Właściwości
Nazwa | Opis | |
---|---|---|
![]() |
ConnectionString | Pobiera wartość reprezentującą ciąg połączenia dla źródła danych. |
![]() |
DataAccessMethod | Pobiera metoda używana do uzyskiwania dostępu do źródła danych. |
![]() |
DataSourceSettingName | Pobiera wartość wskazującą nazwę ustawienia używane do identyfikowania informacje o połączeniu źródła danych przechowywanych w pliku konfiguracyjnym. |
![]() |
ProviderInvariantName | Pobiera wartość reprezentującą dostawcę danych w źródle danych. |
![]() |
TableName | Pobiera wartość wskazującą nazwę tabeli dostarczania danych. |
![]() |
TypeId | Po wdrożeniu w klasie pochodnej, pobiera identyfikator unikatowy dla tego Attribute. (Odziedziczone z Attribute). |
Początek
Metody
Nazwa | Opis | |
---|---|---|
![]() |
Equals | Infrastruktura. Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone z Attribute). |
![]() |
GetHashCode | Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute). |
![]() |
GetType | Gets the Type of the current instance. (Odziedziczone z Object). |
![]() |
IsDefaultAttribute | Po zastąpieniu w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute). |
![]() |
Match | Po zastąpieniu w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute). |
![]() |
ToString | Returns a string that represents the current object. (Odziedziczone z Object). |
Początek
Pola
Nazwa | Opis | |
---|---|---|
![]() ![]() |
DefaultDataAccessMethod | Reprezentuje domyślnej metody dostępu do danych.To pole jest tylko do odczytu. |
![]() ![]() |
DefaultProviderName | Reprezentuje domyślna nazwa dostawcy danych.To pole jest tylko do odczytu. |
Początek
Jawne implementacje interfejsu
Nazwa | Opis | |
---|---|---|
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetIDsOfNames | Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone z Attribute). |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetTypeInfo | Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute). |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetTypeInfoCount | Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone z Attribute). |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#Invoke | Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute). |
Początek
Uwagi
DataSourceAttribute Klasa oferuje dwa sposoby określania danych źródła informacji do badań opartych na danych. Pierwszy sposób określa informacje za pomocą ciągu połączenia, informacji o dostawcy i nazwa tabeli źródłowej przekazane do DataSourceAttribute.
Przykład ciąg połączenia:
[DataSource("Provider=SQLOLEDB.1;Data Source=MySource;Integrated] Security=SSPI;Initial Catalog=MyCatalog;Persist Security Info=False", "MyTable")]
Drugi sposób przekazuje jeden argument atrybut, który określa ustawienie konfiguracji znajduje się w app.config pliku.
Przykład ustawienia konfiguracji:
[DataSource("dataSourceNameFromConfigFile")]
[!UWAGA]
Inne dane dostawcy używają innymi ciągami połączenia.Nazwa dostawcy jest częścią ciągu połączenia.
Aby uzyskać więcej informacji na temat korzystania z app.config plik do określania źródła danych, zobacz Wskazówki: korzystanie z pliku konfiguracji do określania źródła danych.
Aby uzyskać więcej informacji na temat testów opartych na danych, zobacz Data-Driven Unit Tests.
Aby uzyskać więcej informacji dotyczących używania atrybutów, zobacz Rozszerzanie metadanych za pomocą atrybutów.
Przykłady
Poniższy kod zawiera klasy i metoda badania.
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
Przechodzi kolejny test.Używa sample.mdb bazę danych programu access zawiera następujące dane w tabeli Tabela1.
Nazwa |
Saldo |
Kwota |
---|---|---|
Jorg Bott |
100 |
25 |
Pedro Ruivo |
70 |
60 |
Krzysztof Janiszewski |
75 |
71.25 |
Król Russell |
159 |
158 |
Cao na cze |
11.99 |
11.22 |
Należy zauważyć, że DataAccessMethod został ustawiony jako sekwencyjny.
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
Bezpieczeństwo wątku
Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.
Zobacz też
Informacje
Przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTesting
Inne zasoby
Porady: tworzenie testu jednostkowego opartego na danych