Visão geral de testes de unidade

Testes de unidade são testes programáticos escritos em Visual C# ou Visual Basic, ou em Visual C++ e compilados com /clr:safe.

Observação:

Para obter detalhes sobre como usar testes unidade com código produção C++ e como usar testes unidade escritos em C++, consulte Testes de unidade e C++.

Testes de unidade são usados para executar Outros código fonte chamando diretamente os métodos de uma classe, passando parâmetros apropriados.Em seguida, se você incluir instruções Assert, eles podem testar os valores que são produzidos com os valores esperados.Métodos de teste de unidade residem em classes de teste, que são armazenadas em arquivos de código fonte.

Você pode criar testes de unidade usando um recurso de geração de código que cria o código fonte inicial do teste, ou você pode escrever completamente o teste manualmente.Em qualquer das maneiras, a classe de teste e todos os métodos de teste são identificados através do uso de atributos programáticos.

Cada classe de teste é marcada com o [TestClass()] atributo. Cada teste de unidade é um método de teste que é marcado com o [TestMethod()] atributo. Esses atributos são atribuídos automaticamente quando testes de unidade são gerados; quando você codifica testes de unidade à mão, você mesmo tem que adicionar classe e atributos de método.Para obter mais informações, consulte Estrutura de testes de unidade.

Gerando testes de unidade

Você pode gerar testes de unidade usando uma caixa de diálogo alcançada através de Visual Studio janelas de ferramentas. Cada teste de unidade é criado como um método de C#, Visual Basic ou Visual C++.Seu código e atributos residem em um arquivo de origem em um projeto de teste da mesma linguagem.O novo teste aponta o código específico a ser testado.Você pode gerar um único teste de unidade para um método individual, múltiplos testes para métodos que você selecionou, ou múltiplos testes para todos os métodos em uma classe ou namespace.

Você pode gerar testes de unidade de código-fonte em seu projeto corrente.Você também pode gerar testes de unidade de um assembly no sistema de arquivos, que é útil quando o código-fonte não está disponível.

O código de um teste recém-gerado é compilado, mas antes ele poderá fornecer resultados de teste úteis, você deve edição-lo.Por exemplo, você pode editá-lo para fazer atribuições de variável e para personalizar declarações Assert.Testes de unidade gerados contêm declarações TODO que indicam quais linhas de código devem ser editadas.

Observação:

O Ferramentas de teste do Team System usar convenções de nomeação quando geram testes de unidade. Por exemplo, um arquivo de teste é nomeado concatenando a palavra "Test" com o nome do arquivo que contém o código que você está testando; por exemplo, "Class1Test.cs". Nomes de teste classes e métodos de teste são gerados usando padrões também. Você pode alterar esses padrões no Configuração de geração de teste a caixa de diálogo, o que você pode em em aberto clicando em Configurar on the Geração de teste de unidade caixa de diálogo.

Para obter mais informações, consulte Como: Gerar um teste de unidade.

Criando testes de unidade

Você também pode criar um teste de unidade à mão, sem usar o recurso de geração.A melhor maneira de fazer isso é adicionar que um teste de unidade a um projeto de teste; isso cria um resto de método de teste que não contém nenhum código, mas tem o [TestMethod()] atributo aplicado. Para concluir o teste, você deve então editar o teste em seu arquivo de origem, que por sua vez reside em um projeto de teste na sua solução.Para obter mais informações, consulte Como: Criar um teste de unidade e Estrutura de testes de unidade.

O Unit Testing Framework

O Unit Testing estrutura fornece várias classes Assert adicionais e Outros classes que oferecem a você flexibilidade na escrita de testes de unidade.Para obter mais informações, consulte a documentação no namespace e tipos do Testes de Unidade do Framework em Microsoft.VisualStudio.TestTools.UnitTesting.

Herança de classe de teste

Uma classe de teste é qualquer classe marcada com o atributo TestClass.Classes de teste agora podem herdar de membros de Outros classes de teste.Isso significa que você pode criar testes reutilizáveis em classes de teste básico; classes derivadas de teste podem herdar testes de classes de teste básico.Este recurso elimina o código de teste duplicado e oferece aos desenvolvedores mais flexibilidade ao código de produção teste de unidade.

Uma classe de teste não pode herdar de uma classe que está em um assembly diferente.Você pode contornar essa limitação da seguinte maneira:

  1. Definir sua classe de teste básico em um arquivo de código-fonte e adicionar o arquivo ao projeto a.

  2. Adicionar o arquivo de código fonte mesmo a um projeto diferente, Project B.Para fazer isso, clicar com o botão direito do mouse o projeto em gerenciador de soluções, clique em Adicionar, click Item existentee use o Adicionar item existente caixa de diálogo para selecionar o arquivo.

  3. Embora o projeto B se baseia em um assembly diferente, ele inclui a classe de teste básico.Outras classes de teste no projeto B podem herdar de classe base de teste.

Exemplo da herança

Seu código de produção tem duas implementações: uma usa um back-end Microsoft SQL servidor e o Outros utiliza o Oracle.As duas implementações devem funcionar da mesma maneira.Você pode criar uma classe de teste abstrata chamada DBTestSuite que contém o código de teste padrão.Você pode criar duas classes, SQLTestSuite e OracleTestSuite, que derivam DBTestSuite.As classes derivadas só precisam implementar o método de conectar abstrato.Uma classe de teste, em seguida, se conectará ao Microsoft SQL servidor e o Outros para Oracle.

Além disso, você pode criar uma classe de teste EmptySQLTestSuite que deriva de SQLTestSuite para testar um banco de dados vazio do Microsoft SQL servidor.Para melhorar o desempenho, você pode substituir os métodos de teste específico que não façam sentido para teste de um banco de dados vazio.

Se você usar a herança de classe de teste, o Modo de Teste janela de e Editor de Lista de Testes exibir os métodos de teste em classes base e classes filho.Para ver qual classe de teste está em, exiba o nome de classe or Nome completo da classe colunas Explorer de lista de testes.Para obter mais informações, consulte Como: Personalizar modos de exibição de teste.

Testando Métodos Privados

Usando testes de unidade, você pode testar não apenas métodos públicos, mas métodos particulares também.Testes de unidade para métodos particulares, assim como para métodos públicos, são criados automaticamente quando você gera testes a partir do código que você deseja testar.Para obter mais informações, consulte Como: Testar a particular método e Usar acessadores particular.

Tipos especiais de testes de unidade

A tabela a seguir lista tipos adicionais de testes de unidade:

Tipo de teste de unidade

Descrição

testes de unidade orientado a dados

Um teste orientado a dados é um teste de unidade que você configura para ser chamado repetidamente para cada linha de uma fonte de dados.sistema autônomo dados de cada linha estão disponível para cada execução sucessiva do teste sistema autônomo dados de entrada.Para obter mais informações, consulte Visão geral dos testes de unidade baseados em dados.

ASP.NET testes de unidade

ASP.NET testes de unidade são usados para executar código em um ASP.NET aplicativos sistema autônomo o responderá às solicitações de página. ASP.NET testes de unidade são executados dentro do ASP.NET aplicativo que está sendo testado. Para obter mais informações, consulte Visão geral dos testes de unidade ASP.NET.

dispositivo SMART testes de unidade

Testes de unidade de dispositivo SMART são testes de unidade executados sob o processo de host de dispositivo SMART em um emulador ou dispositivo SMART.Para mais informações, consulte: Visão geral dos testes de unidade dispositivos inteligentes.

Testes de unidade de serviços da Web

Para obter informações sobre testes de unidade de serviço Web, consulte Testando serviços da Web.

Consulte também

Conceitos

Estrutura de testes de unidade

Testes de unidade e C++

Trabalhando com testes de unidade baseados em dados

Outros recursos

Trabalhando com testes de unidade ASP.NET

Trabalhando com testes de unidade dispositivos inteligentes

Gerenciando testes

Executando testes

Analisar resultados de teste