TestContext.DataRow プロパティ

更新 : 2007 年 11 月

派生クラスでオーバーライドされている場合、テストがデータ ドリブン テストに使用されているときに現在のデータ行を取得します。

名前空間 :  Microsoft.VisualStudio.TestTools.UnitTesting
アセンブリ :  Microsoft.VisualStudio.SmartDevice.UnitTestFramework (Microsoft.VisualStudio.SmartDevice.UnitTestFramework.dll 内)

構文

'宣言
Public MustOverride ReadOnly Property DataRow As DataRow
'使用
Dim instance As TestContext
Dim value As DataRow

value = instance.DataRow
public abstract DataRow DataRow { get; }
public:
virtual property DataRow^ DataRow {
    DataRow^ get () abstract;
}
public abstract function get DataRow () : DataRow

プロパティ値

型 : System.Data.DataRow

DataRow オブジェクト。

解説

DataRow プロパティは、現在の行の値を列ごとに返します。これによって、列によって識別されるデータが返されます。列は、下の例のように名前で識別されるか、またはインデックス位置で識別されます。下の例に示すサンプル データ テーブルでは、DataRow[0] のインデックス ID は Table1 の Name 列の値を返します。

次のコードには、テスト対象のクラスとメソッドが含まれます。

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

次のテストは合格になります。このテストでは、次のデータを持つ Table1 を含む sample.mdb アクセス データベースを使用します。

名前

残高

金額

Becky

100

25

John

70

60

Larry

75

71.25

Stephanie

159

158

Bryan Walton 氏

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

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

TestContext クラス

TestContext メンバ

Microsoft.VisualStudio.TestTools.UnitTesting 名前空間

その他の技術情報

データ ドリブン ユニット テストのコーディング

方法 : データ ドリブン ユニット テストを構成する

TestContext クラスの使用