Sdílet prostřednictvím


Návod: Definování zdroje dat pomocí konfiguračního souboru

Tento názorný postup ukazuje, jak použít zdroj dat definovaný v souboru app.config pro testování jednotek. Dozvíte se, jak vytvořit soubor app.config , který definuje zdroj dat, který může třída používat DataSourceAttribute . Mezi úlohy uvedené v tomto názorném postupu patří:

  • Vytvoření souboru app.config

  • Definování vlastního oddílu konfigurace

  • Definování připojovací řetězec

  • Definování zdrojů dat

  • Přístup ke zdrojům dat pomocí DataSourceAttribute třídy

Poznámka:

DataSourceAttribute se v současné době podporuje pouze v rozhraní .NET Framework.

Požadavky

K dokončení tohoto názorného postupu potřebujete:

  • Visual Studio Enterprise

  • Microsoft Access nebo Microsoft Excel k poskytování dat alespoň jedné z testovacích metod.

  • Řešení sady Visual Studio, které obsahuje testovací projekt.

Přidání souboru app.config do projektu

  1. Pokud už testovací projekt obsahuje soubor app.config , přejděte do části Definovat vlastní konfiguraci.

  2. Klikněte pravým tlačítkem myši na testovací projekt v Průzkumník řešení a pak vyberte Přidat>novou položku.

    Otevře se okno Přidat novou položku . Pokud nevidíte všechny šablony položek, zvolte Zobrazit všechny šablony a pak zvolte šablonu položky.

  3. Vyberte šablonu konfiguračního souboru aplikace a klikněte na Přidat.

Definování vlastního oddílu konfigurace

Prozkoumejte soubor app.config. Obsahuje alespoň deklaraci XML a kořenový prvek.

Přidání vlastního konfiguračního oddílu do souboru app.config

  1. Kořenovým prvkem app.config by měl být element konfigurace. Vytvořte element configSections v rámci elementu konfigurace . ConfigSections by měl být prvním prvkem v souboru app.config.

  2. V elementu configSections vytvořte element oddílu.

  3. V elementu oddílu přidejte atribut volaný name a přiřaďte mu hodnotu microsoft.visualstudio.testtools. Přidejte další volaný type atribut a přiřaďte mu hodnotu Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.

Prvek oddílu by měl vypadat nějak takto:

<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />

Poznámka:

Název sestavení musí odpovídat verzi, kterou používáte.

Definování připojovací řetězec

Připojovací řetězec definují informace specifické pro zprostředkovatele pro přístup ke zdrojům dat. Připojení ionové řetězce definované v konfiguračních souborech poskytují opakovaně použitelné informace o poskytovateli dat v rámci aplikace. V této části vytvoříte dvě připojovací řetězec, které budou používány zdroji dat definovanými v oddílu Vlastní konfigurace.

Definování připojovací řetězec

  1. Za configSections element, vytvořte connectionStrings element.

  2. V elementu connectionStrings vytvořte dva přidat elementy.

  3. V prvním přidání elementu vytvořte následující atributy a hodnoty pro připojení k databázi Microsoft Accessu:

Atribut Hodnoty
name "MyJetConn"
connectionString "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;"
providerName "System.Data.OleDb"

Ve druhém doplňku vytvořte následující atributy a hodnoty pro připojení k tabulce Aplikace Microsoft Excel:

Atribut Hodnoty
name "MyExcelConn"
connectionString "Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5"
providerName "System.Data.Odbc"

Element connectionStrings by měl vypadat nějak takto:

<connectionStrings>
    <add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
    <add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>

Definování zdrojů dat

Část zdroje dat obsahuje čtyři atributy, které testovací modul používá k načtení dat ze zdroje dat.

  • name definuje identitu používanou DataSourceAttribute k určení, který zdroj dat se má použít.

  • connectionStringidentifikuje připojovací řetězec vytvořené v předchozí části Definovat Připojení ion Strings.

  • dataTableName definuje tabulku nebo list obsahující data, která se mají použít v testu.

  • dataAccessMethod definuje techniku přístupu k hodnotám dat ve zdroji dat.

V této části definujete dva zdroje dat, které se mají použít v testu jednotek.

Definování zdrojů dat

  1. Za connectionStrings element, vytvořte microsoft.visualstudio.testtools element. Tento oddíl byl vytvořen v části Definovat vlastní konfiguraci.

  2. V elementu microsoft.visualstudio.testtools vytvořte element dataSources .

  3. V elementu dataSources vytvořte dva prvky přidání .

  4. V prvním prvku add vytvořte následující atributy a hodnoty pro zdroj dat Aplikace Microsoft Access:

Atribut Hodnoty
name "MyJetDataSource"
connectionString "MyJetConn"
dataTableName "MyDataTable"
dataAccessMethod "Sequential"

Ve druhém doplňku vytvořte následující atributy a hodnoty pro zdroj dat Aplikace Microsoft Excel:

Atribut Hodnoty
Name "MyExcelDataSource"
connectionString "MyExcelConn"
dataTableName "Sheet1$"
dataAccessMethod "Sequential"

Element microsoft.visualstudio.testtools by měl vypadat nějak takto:

<microsoft.visualstudio.testtools>
    <dataSources>
        <add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
        <add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
    </dataSources>
</microsoft.visualstudio.testtools>

Konečný soubor app.config by měl vypadat nějak takto:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
    </configSections>
    <connectionStrings>
        <add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
        <add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
    </connectionStrings>
    <microsoft.visualstudio.testtools>
        <dataSources>
            <add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
            <add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
        </dataSources>
    </microsoft.visualstudio.testtools>
</configuration>

Vytvoření testu jednotek, který používá zdroje dat definované v app.config

Teď, když je soubor app.config definovaný, vytvoříte test jednotek, který používá data umístěná ve zdrojích dat definovaných v souboru app.config . V této části:

  • Vytvořte zdroje dat nalezené v souboru app.config .

  • Zdroje dat použijte ve dvou testovacích metodách, které porovnávají hodnoty v každém zdroji dat.

Vytvoření zdroje dat Microsoft Accessu

  1. Vytvořte databázi Microsoft Accessu s názvem testdatasource.accdb.

  2. Vytvořte tabulku a pojmenujte ji MyDataTable v souboru testdatasource.accdb.

  3. Vytvořte dvě pole s MyDataTable názvem Arg1 a Arg2 pomocí datového Number typu.

  4. Přidejte pět MyDataTable entit s následujícími hodnotami pro Arg1 a Arg2v uvedeném pořadí: (10 50), (3,2), (6,0), (0,8) a (12312 1000).

  5. Uložte a zavřete databázi.

  6. Změňte připojovací řetězec tak, aby odkazovat na umístění databáze. Změňte hodnotu Data Source tak, aby odrážela umístění databáze.

Vytvoření zdroje dat Aplikace Microsoft Excel

  1. Vytvořte tabulku Aplikace Microsoft Excel s názvem data.xlsx.

  2. Vytvořte list s názvemSheet1, pokud ještě v souboru data.xlsx neexistuje.

  3. Vytvořte dvě záhlaví sloupců a pojmenujte je Val1 a Val2 v Sheet1souboru .

  4. Přidejte pět Sheet1 entit s následujícími hodnotami pro Val1 a Val2v uvedeném pořadí: (1,1), (2,2), (3,3), (4,4) a (5,0).

  5. Uložte a zavřete tabulku.

  6. Změňte připojovací řetězec tak, aby odkazovat na umístění tabulky. Změňte hodnotu dbq tak, aby odrážela umístění tabulky.

Vytvoření testu jednotek pomocí zdrojů dat app.config

  1. Přidejte do testovacího projektu test jednotek.

  2. Nahraďte automaticky vygenerovaný obsah testu jednotek následujícím kódem:

    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    
    namespace TestProject1
    {
         [TestClass]
        public class UnitTest1
        {
            private TestContext context;
    
            public TestContext TestContext
            {
                get { return context; }
                set { context = value; }
            }
    
            [TestMethod()]
            [DeploymentItem("MyTestProject\\testdatasource.accdb")]
            [DataSource("MyJetDataSource")]
            public void MyTestMethod()
            {
                int a = Int32.Parse(context.DataRow["Arg1"].ToString());
                int b = Int32.Parse(context.DataRow["Arg2"].ToString());
                Assert.AreNotEqual(a, b, "A value was equal.");
            }
    
            [TestMethod()]
            [DeploymentItem("MyTestProject\\data.xlsx")]
            [DataSource("MyExcelDataSource")]
            public void MyTestMethod2()
            {
                Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]);
            }
        }
    }
    
  3. Prozkoumejte atributy DataSource. Všimněte si názvů nastavení ze souboru app.config .

  4. Sestavte řešení a spusťte testy MyTestMethod a MyTestMethod2.

Důležité

Nasaďte položky, jako jsou zdroje dat, aby byly přístupné pro test v adresáři nasazení.