Condividi tramite


Codifica di unit test basati sui dati

Aggiornamento: novembre 2007

Uno unit test rappresenta un test basato sui dati se dispone degli attributi richiesti da uno unit test basato sui dati. È possibile assegnare questi attributi e i relativi valori utilizzando la finestra Proprietà oppure aggiungendo gli attributi direttamente al codice del test.

Per ulteriori informazioni sulla configurazione di uno unit test come test basato sui dati modificandone le proprietà, vedere Procedura: configurare unit test basati su dati.

In questo argomento viene descritto come codificare uno unit test come unit test basato sui dati utilizzando l'attributo DataSource e la classe TestContext.

Utilizzo di dati di un'origine dati

Durante l'esecuzione di unit test basati sui dati, i dati vengono recuperati dalle righe di un'origine dati. I dati vengono quindi resi disponibili per lo unit test in esecuzione tramite le proprietà DataRow e DataConnection della classe TestContext.

Nel seguente esempio, DataRow() è del tipo DataRow e LastName è il nome di una colonna valida nella riga associata all'iterazione corrente del test basato sui dati. 

TestContext.DataRow["LastName"]

Mentre in LastName si fa riferimento a una colonna tramite il nome, è possibile fare riferimento alle colonne anche tramite un numero di colonna.

Per ciascuna riga della tabella, è possibile accedere a qualsiasi numero di colonne. È possibile, ad esempio, recuperare più colonne di dati contemporaneamente, utilizzarle per i calcoli e confrontarne i risultati con una colonna finale che contiene il valore restituito previsto.

Codifica di unit test basati sui dati

Per creare unit test basati sui dati, è possibile iniziare con uno unit test creato manualmente oppure con uno unit test generato. Per ulteriori informazioni, vedere Procedura: modificare unit test e Procedura: generare unit test.

Per configurare uno unit test esistente, aggiungere gli attributi che definiscono l'origine dati che si desidera utilizzare, il modo in cui accedere ai dati e la tabella contenente le righe da utilizzare come input per il test. Per ulteriori informazioni sulla configurazione di tali attributi, vedere Procedura: configurare unit test basati su dati.

Ad esempio, il seguente codice fa parte di uno unit test basato sui dati che utilizza i dati del database 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"] );
        }
    }
}

Nel codice del metodo del test in questo esempio vengono utilizzati i valori delle colonne LastName e EmployeeID nella tabella "Employees" dell'origine dati. Il metodo del test consente di accedere ai valori attraverso la proprietà TestContext definita nella classe di test contenente il metodo.

Vedere anche

Attività

Procedura: modificare unit test

Procedura: configurare unit test basati su dati

Concetti

Struttura di unit test

Riferimenti

DataSourceAttribute

TryUrlRedirection

Altre risorse

Procedura: generare unit test

Cenni preliminari sugli unit test basati su dati