Właściwość TestContext.DataRow —
Gdy zastąpiony w klasie pochodnej, pobiera bieżący wiersz danych, podczas badania jest używany dla danych badań.
Przestrzeń nazw: Microsoft.VisualStudio.TestTools.UnitTesting
Zestaw: Microsoft.VisualStudio.QualityTools.UnitTestFramework (w Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Składnia
'Deklaracja
Public MustOverride ReadOnly Property DataRow As DataRow
public abstract DataRow DataRow { get; }
public:
virtual property DataRow^ DataRow {
DataRow^ get () abstract;
}
abstract DataRow : DataRow with get
abstract function get DataRow () : DataRow
Wartość właściwości
Typ: DataRow
A DataRow object.
Uwagi
DataRow Właściwość zwraca wartości dla bieżącego wiersza w kolumnie.Spowoduje to przywrócenie określonych przez kolumny danych.Kolumna jest identyfikowana przez nazwę, jak w poniższym przykładzie, lub przez jego lokalizację indeksu.Korzystając z tabeli danych próbki przedstawione w poniższej sekcji przykład, identyfikator indeksu elementu DataRow [0] zwróci wartość w kolumnie Nazwa w tabeli Tabela1.
Przykłady
Poniższy kod zawiera klasy i metody badania.
using System;
namespace BankAccountNS
{
public class BankAccount
{
private string m_customerName;
private double m_balance;
public BankAccount(string customerName, double balance)
{
m_customerName = customerName;
m_balance = balance;
}
public double Balance
{ get { return m_balance; } }
public void Debit(double amount)
{
if (amount < 0)
throw new ArgumentOutOfRangeException("amount");
m_balance -= amount;
}
}
}
Imports System
Namespace BankAccountNS
Public Class BankAccount
Private m_customerName As String
Private m_balance As Double
Public Sub New(ByVal customerName As String, ByVal balance As Double)
m_customerName = customerName
m_balance = balance
End Sub
Public ReadOnly Property Balance() As Double
Get
Return m_balance
End Get
End Property
Public Sub Debit(ByVal amount As Double)
If amount < 0 Then
Throw New ArgumentOutOfRangeException("amount")
End If
m_balance -= amount
End Sub
End Class
End Namespace
Następujące badania będą przekazywać.Korzysta z bazy danych access sample.mdb, zawierającą następujące dane Tabela1.
Nazwa |
Saldo |
Kwota |
---|---|---|
Becky |
100 |
25 |
John |
70 |
60 |
Larry |
75 |
71.25 |
Stephanie |
159 |
158 |
MR.Chmiela |
11.99 |
11.22 |
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BankAccountNS;
using System;
namespace TestProject1
{
[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=\"D:\\sample.mdb\"",
"Table1",
DataAccessMethod.Sequential)]
public void DebitTest()
{
string customerName = testContextInstance.DataRow["Name"].ToString();
double balance = Convert.ToDouble(testContextInstance.DataRow["Balance"]);
double amount = Convert.ToDouble(testContextInstance.DataRow["Amount"]);
double newBalance = balance - amount;
BankAccount target = new BankAccount(customerName, balance);
target.Debit(amount);
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
Zabezpieczenia programu .NET Framework
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Używanie bibliotek pochodzących z częściowo zaufanego kodu.
Zobacz też
Informacje
Przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTesting
Inne zasoby
Porady: tworzenie testu jednostkowego opartego na danych