Написание кода модульного теста, управляемого данными

Обновлен: Ноябрь 2007

Модульный тест выполняется как тест, управляемый данными, если он имеет необходимые для этого атрибуты. Атрибуты и их значения определяются с помощью окна свойств или добавляются непосредственно в код теста.

Дополнительные сведения о настройке модульных тестов, как управляемых данными, путем изменения свойств см. в разделе Практическое руководство. Настройка модульного теста, управляемого данными.

В этом разделе описывается написание кода модульного теста, управляемого данными, с использованием атрибута DataSource и класса TestContext.

Использование данных из источника данных

При выполнении модульного теста, управляемого данными, данные извлекаются из строк источника данных. Затем данные становятся доступными для выполняемого теста через свойства DataRow и DataConnection класса TestContext.

В следующем примере свойство DataRow() имеет тип DataRow, а LastName является именем допустимого столбца в строе, связанной с текущей итерацией теста, управляемого данными. 

TestContext.DataRow["LastName"]

Пока LastName ссылается на столбец по имени, на столбец также можно сослаться по его номеру.

Для каждой строки таблицы доступно любое число столбцов. Можно, например, одновременно извлечь данные из несколько столбцов, использовать их в вычислении, а затем сравнить результат со значением итогового столбца, который содержит ожидаемое возвращаемое значение.

Написание кода модульного теста, управляемого данными

Создание модульного теста, управляемого данными, можно начать с любого существующего модульного теста, сгенерированного системой или созданного вручную. Дополнительные сведения см. в разделах Практическое руководство. Создание модульного теста и Практическое руководство. Создание модульного теста.

Для настройки существующего теста следует добавить к нему атрибуты, определяющие источник данных, способ доступа к данным и таблицу, строки которой будут использоваться в качестве входных данных. Дополнительные сведения о настройке этих атрибутов см. в разделе Практическое руководство. Настройка модульного теста, управляемого данными.

Например, в следующем коде модульного теста, управляемого данными, используются сведения из базы данных Northwind.

namespace TestProject1
{
    [TestClass]
    public class TestClass
    {
        private TestContext m_testContext;
        public TestContext TestContext
        {
            get { return m_testContext; }
            set { m_testContext = value; }
        }
        [TestMethod]
        [DeploymentItem("FPNWIND.MDB")]
        [DataSource("System.Data.OleDb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"FPNWIND.MDB\"", "Employees", DataAccessMethod.Sequential)]
        public void TestMethod()
        {
            Console.WriteLine( "EmployeeID: {0}, LastName: {1}", TestContext.DataRow["EmployeeID"],  TestContext.DataRow["LastName"] );
        }
    }
}

В этом примере в коде тестового метода используются значения из столбцов LastName и EmployeeID таблицы "Employees" источника данных. Тестовый метод получает доступ к этим значениям через свойство TestContext, определенное в тестовом классе, содержащем метод.

См. также

Задачи

Практическое руководство. Создание модульного теста

Практическое руководство. Настройка модульного теста, управляемого данными

Основные понятия

Структура модульных тестов

Ссылки

DataSourceAttribute

TryUrlRedirection

Другие ресурсы

Практическое руководство. Создание модульного теста

Общие сведения о модульных тестах, управляемых данными