更新:2007 年 11 月
指定常数,这些常数指示如何在数据驱动测试中访问数据行。
命名空间:  Microsoft.VisualStudio.TestTools.UnitTesting
程序集:  Microsoft.VisualStudio.QualityTools.UnitTestFramework(在 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 中)
语法
声明
Public Enumeration DataAccessMethod
用法
Dim instance As DataAccessMethod
public enum DataAccessMethod
public enum class DataAccessMethod
public enum DataAccessMethod
成员
示例
下面的代码包含要测试的类和方法。
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
下面的测试将会通过。它使用包含以下数据的 sample.mdb Access 数据库。
| 姓名 | 余额 | 金额 | 
|---|---|---|
| Jorg Bott | 100 | 25 | 
| Pedro Ruivo | 70 | 60 | 
| Mandar Samant | 75 | 71.25 | 
| Russell King | 159 | 158 | 
| Jun Cao | 11.99 | 11.22 | 
请注意,DataAccessMethod 是顺序访问方法。
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
另请参见
参考
Microsoft.VisualStudio.TestTools.UnitTesting 命名空间