Demonstra Passo a passo: Usando um arquivo de configuração para definir uma fonte de dados
Esta explicação passo a passo ilustra como usar uma fonte de dados definida em um App. arquivo de configuração para teste de unidade.Você aprenderá como criar um App. arquivo de configuração que define uma fonte de dados que pode ser usada pelo DataSourceAttribute classe. Tarefas apresentadas nesta explicação passo a passo incluem o seguinte:
Criar um arquivo app.config.
Definir uma seção de configuração personalizada.
Definir sequências de conexão.
Definir as fontes de dados.
Acessar as fontes de dados usando o DataSourceAttribute classe.
Pré-requisitos
Para concluir esta explicação passo a passo, será necessário:
Visual Studio Team System Test Edition
O Microsoft Access ou o Microsoft Excel para fornecer dados para pelo menos um dos métodos de teste.
A Visual Studio 2005 solução que contenha um projeto de teste.
Crie o arquivo App.config
Adicionar um arquivo app.config para o projeto
Se seu projeto de teste já possui um arquivo app.config, vá para Define a Custom Configuration Section.
Clique com o botão direito do mouse no seu projeto de teste no Solution Explorer, aponte para Add e depois clique em New Item.
A janela Add New Item abre.
Selecione o modelo Application Configuration File e clique em Add.
Defina uma seção de configuração personalizada
Examinar o aplicativo. arquivo de configuração.Ele contém pelo menos a declaração XML e um elemento raiz.
Adicionar a seção de configuração personalizada para o arquivo app.config
O elemento raiz do app.config deve ser a configuration elemento. Criar um configSections elemento dentro do configuration elemento. The configSections deve ser o primeiro elemento no aplicativo. arquivo de configuração.
Dentro de configSections elemento, criar um section elemento.
No section elemento, adicione um atributo chamado name e atribuir it um valor igual microsoft.visualstudio.testtools. Adicione outro atributo chamado type e atribua a ela um valor igual Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
The section elemento deve parecer semelhante a esta:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Defina sequências de conexão
As sequências de conexão definem informações específicas de provedor para acessar fontes de dados.Sequências de conexão definidas em arquivos de configuração fornecem informações de provedor de dados reutilizáveis através de um aplicativo.Nesta seção, você cria duas sequências de conexão que serão usadas por fontes de dados que estão definidas na seção de Configuração personalizada.
Definir sequências de conexão
Após o configSections elemento, criar um connectionStrings elemento.
Dentro de connectionStrings elemento, criar dois add elementos.
No primeiro add elemento, criar os seguintes atributos e valores para uma conexão com um banco de dados do Microsoft acesso:
Atributo |
Valores |
---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.mdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
No segundo add elemento, criar os seguintes atributos e valores para uma conexão a uma planilha do Microsoft Excel:
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xls;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
The connectionStrings elemento deve parecer semelhante a esta:
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.mdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xls;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
Defina fontes de dados
A seção fontes de dados contém quatro atributos que são usados pelo mecanismo de teste para recuperar dados de uma fonte de dados.
name Define a identidade usada pela DataSourceAttribute Para especificar qual fonte de dados para usar.
connectionString identifica a cadeia de conexão criada na seção anterior Defina seqüências de conexão.
dataTableName Define a tabela ou folha que contém os dados a serem usados no teste.
dataAccessMethod Define a técnica para acessar valores de dados na fonte de dados.
Nesta seção, você irá definir duas fontes de dados para usar em um teste de unidade.
Definir fontes de dados
Após o connectionStrings elemento, criar um microsoft.visualstudio.testtools elemento. Esta seção foi criada em define a Custom configuração Section.
Dentro de microsoft.visualstudio.testtools elemento, criar um dataSources elemento.
Dentro de dataSources elemento, criar dois add elementos.
No primeiro add elemento, criar os seguintes atributos e valores de uma fonte de dados do Microsoft acesso:
Atributo |
Valores |
---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
No segundo add elemento, criar os seguintes atributos e valores de uma fonte de dados do Microsoft Excel:
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
The microsoft.visualstudio.testtools elemento deve parecer semelhante a esta:
<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>
O arquivo app.config final deve parecer semelhante a este:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.mdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xls;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>
Crie um teste de unidade usando fontes de dados definidas em app.config
Agora que um arquivo app.config foi definido, você irá criar um teste de unidade que usa dados localizados em fontes de dados que são definidas no arquivo app.config.Nesta seção, nós iremos:
Criar fontes de dados encontradas no arquivo app.config.
Usar as fontes de dados em dois métodos de teste que comparam os valores em cada fonte de dados.
Criar uma fonte de dados do Microsoft Access
criar um banco de dados do Microsoft acesso chamado testdatasource.mdb.
Criar uma tabela e nome-MyDataTable em testdatasource.mdb.
criar dois campos em MyDataTable chamada Arg1 e Arg2 usando o Number tipo de dados.
Adicione cinco entidades para MyDataTable com os seguintes valores para Arg1 e Arg2, respectivamente: (10,50), (3,2), (6,0), (0,8) e (12312,1000).
Salve e feche o banco de dados.
Altere a sequência de conexão para apontar para o local do banco de dados.Alterar o valor de Data Source para refletir o local do banco de dados.
Criar uma fonte de dados do Microsoft Excel
criar uma planilha do Microsoft Excel denominada data.xls.
criar uma folha denominada Sheet1 Se ele já não existir na data.xls.
Crie dois cabeçalhos de coluna e os Val1 e Val2 em Sheet1.
Adicione cinco entidades para Sheet1 com os seguintes valores para Val1 e Val2, respectivamente: (1,1), (2,2), (3,3), (4,4) e (5,0).
Salve e feche a planilha eletrônica.
Altere a sequência de conexão para apontar para o local da planilha eletrônica.Alterar o valor de dbq para refletir o local da planilha.
Criar um teste de unidade usando as fontes de dados do app.config
Adicione um teste de unidade ao projeto de teste.
Para obter mais informações, consulte Como: Criar um teste de unidade.
Substitua os conteúdos gerados automaticamente do teste de unidade pelo seguinte código:
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.mdb")] [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.xls")] [DataSource("MyExcelDataSource")] public void MyTestMethod2() { Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]); } } }
Examine os atributos DataSource.Observe os nomes de configuração do arquivo app.config.
Compile sua solução e execute os testes MyTestMethod e MyTestMethod2.
Observação importante: |
---|
Implante itens como fontes de dados para que eles fiquem acessíveis para o teste no diretório de implantação.Para obter mais informações, consulte Implantação de Teste. |
Consulte também
Tarefas
Como: Criar um projeto de teste
Como: Criar um teste de unidade
Como: Configurar um teste de unidade orientados a dados
Conceitos
Codificando um teste de unidade orientado a dados
Solucionando problemas de testes de unidade baseados em dados
Outros recursos
Trabalhando com testes de unidade