Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Specifies constants that indicate how data rows are accessed in data-driven testing.
Namespace: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Syntax
'Declaration
Public Enumeration DataAccessMethod
public enum DataAccessMethod
public enum class DataAccessMethod
type DataAccessMethod
public enum DataAccessMethod
Members
Member name | Description | |
---|---|---|
Sequential | Rows are returned in a sequential order. | |
Random | Rows are returned in a random order. |
Examples
The following code contains the class and method to test.
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
The following test will pass. It uses the sample.mdb access database that contains the following data.
Name |
Balance |
Amount |
---|---|---|
Jorg Bott |
100 |
25 |
Pedro Ruivo |
70 |
60 |
Mandar Samant |
75 |
71.25 |
Russell King |
159 |
158 |
Jun Cao |
11.99 |
11.22 |
Note that the DataAccessMethod is sequential.
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
See Also
Reference
Microsoft.VisualStudio.TestTools.UnitTesting Namespace