Compartir a través de


Codificar una prueba unitaria orientada a datos

Actualización: noviembre 2007

Una prueba unitaria funciona como prueba controlada por datos si tiene los atributos que requiere una prueba unitaria controlada por datos. Estos atributos y sus valores se pueden asignar utilizando la ventana de propiedades o agregando directamente los atributos al código de la prueba.

Para obtener más información acerca de cómo configurar una prueba unitaria como controlada por datos editando sus propiedades, vea Cómo: Configurar una prueba unitaria orientada a datos.

En este tema, se describe cómo codificar una prueba unitaria como prueba unitaria controlada por datos, utilizando el atributo DataSource y la clase TestContext.

Utilizar datos de un origen de datos

Cuando una prueba unitaria controlada por datos está en ejecución, se recuperan datos de las filas de un origen de datos. Después, los datos están disponibles para la prueba unitaria en ejecución a través de las propiedades DataRow y DataConnection de la clase TestContext.

En el ejemplo siguiente, DataRow() es del tipo DataRow, y LastName es el nombre de una columna válida en la fila asociada a la iteración en curso de la prueba controlada por datos.

TestContext.DataRow["LastName"]

Aunque LastName hace referencia a una columna por nombre, también se puede hacer referencia a las columnas por número de columna.

Para cada fila de la tabla, se puede tener acceso a cualquier número de columnas. Por ejemplo, se pueden recuperar varias columnas de datos simultáneamente, usarlas en un cálculo y después comparar el resultado con una columna final que contiene un valor devuelto esperado.

Codificar una prueba unitaria orientada a datos

Para crear una prueba unitaria controlada por datos, se puede empezar con una prueba unitaria que se haya creado manualmente o con una prueba unitaria generada. Para obtener más información, vea Cómo: Crear una prueba unitaria y Cómo: Generar una prueba unitaria.

Para configurar la prueba unitaria existente, agregue atributos que definan el origen de datos que desea que utilice, la forma en que desea que se tenga acceso a los datos y la tabla cuyas filas desea que utilice la prueba como entrada. Para obtener más información acerca de cómo configurar estos atributos, vea Cómo: Configurar una prueba unitaria orientada a datos.

Por ejemplo, el código siguiente es de una prueba unitaria controlada por datos que utiliza los datos de la base de datos 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"] );
        }
    }
}

El código del método de prueba de este ejemplo emplea valores de las columnas LastName y EmployeeID, de la tabla "Employees" del origen de datos. El método de prueba tiene acceso a estos valores a través de una propiedad TestContext, que se define en la clase Test que contiene el método.

Vea también

Tareas

Cómo: Crear una prueba unitaria

Cómo: Configurar una prueba unitaria orientada a datos

Conceptos

Estructura de las pruebas unitarias

Referencia

DataSourceAttribute

TryUrlRedirection

Otros recursos

Cómo: Generar una prueba unitaria

Información general de pruebas unitarias orientadas a datos