Como: Criar e executar um teste de unidade

Testes de unidade dar a desenvolvedores e testadores uma maneira rápida de verificar se há erros de lógica nos métodos de classes no C#. Visual Basic.NET e projetos C++. Um teste de unidade pode ser criado de uma vez e pode ser executado sempre que esse código-fonte é alterado para certificar-se de que não há erros são introduzidos.

Este tópico aborda como usar Microsoft Visual Studio 2010 Ferramentas de teste de unidade para gerar automaticamente o esqueleto de um teste de unidade de código existente, adicionar validação para preencher esse esqueleto, criar uma categoria de teste, criar uma lista de teste, executar um teste e ler o código de resultados de cobertura.

Para obter uma descrição das partes de uma unidade de teste, consulte Anatomia de um teste de unidade.

Um exemplo de um teste de unidade

Este exemplo baseia-se no tópico Demonstra Passo a passo: Criar e executar testes de unidade.

A figura a seguir mostra a Create Unit Tests caixa de diálogo. Ela aparece quando você com o botão direito em um arquivo de código que contém métodos e, em seguida, clique em Create Unit Tests. Testes de unidade são gerados para todos os métodos que você selecionar o tipos a lista da caixa de diálogo.

A figura a seguir mostra que neste exemplo, testes de unidade serão gerados para os métodos de crédito e débito.

Caixa de diálogo Criar Testes de Unidade

Depois que você tenha gerado os testes de unidade, será criado um arquivo de código e as alterações são mostradas no seu solution explorer.

A figura a seguir mostra os resultados de criação de testes de unidade.

Proprietário do título necessário para status da arte

  1. Um teste de unidade separada é criado para cada método que você selecionar na caixa de diálogo Criar o teste de unidade. Neste exemplo, geramos testes de unidade para os métodos de crédito e débito.

  2. Cada testes de unidade gerado tem variáveis vazias e um espaço reservado a instrução Assert. Geralmente, o espaço reservado do padrão instrução Assert é a instrução Assert. Inconclusive.

  3. Para fazer o teste significativo, você precisará inicializar as variáveis e substitua o espaço reservado com uma instrução de declaração adequada. Neste exemplo deixamos o teste de unidade de crédito foi gerado, mas podemos inicializar as variáveis e substituído a instrução Assert no método de teste de débito.

  4. Ao gerar testes de unidade pela primeira vez, um projeto de teste é criado na sua solução.

  5. Para cada classe que você está testando, um arquivo de teste de unidade separada é criado no projeto de teste. Neste exemplo, os dois métodos que estamos testando pertencem à mesma classe. Portanto, é apenas um arquivo de teste de unidade, BankAccountTest.cs.

  6. Depois de executar os testes, os resultados aparecem na Resultados de teste janela.

Criar um teste de unidade

Há duas fases para a criação de um teste de unidade.

A primeira fase está gerando um arquivo de teste de unidade que contém uma versão de esqueleto de um método de teste para cada método no código que você está testando. Cada método de esqueleto de teste é gerado com variáveis vazias e um espaço reservado a instrução Assert.

A segunda fase é inicializar as variáveis e substituindo o instrução Assert do espaço reservado uma configuração apropriada.

Gerar os esqueletos de testes de unidade

Você pode usar o Create Unit Tests caixa de diálogo para gerar testes de unidade para qualquer ou todos os métodos no código que você está testando.

ObservaçãoObservação

Embora, em geral, os métodos marcados com atributos como, por exemplo, private, internal, e amigo não estejam visíveis fora da classe desses métodos, o Microsoft Visual Studio 2010 ferramentas permitem que a unidade testa o acesso a esses métodos. Para obter mais informações sobre como isso funciona consulte Testes de unidade para Private, Internal e os métodos de amigo.

Para gerar o esqueleto para seu teste de unidade

  1. Abra o código que você deseja testar o Editor de código do Visual Studio janela.

  2. (Para ASP.NET services apenas) se você estiver testando um aplicativo ASP.NET Web service, certifique-se de que o projeto contém uma página. aspx. Se você criar um teste de unidade para um serviço da Web em um projeto que não contenha uma página. aspx, você receberá um erro ao tentar executar o teste. Para obter mais informações, consulte Testes de unidade ASP.NET Web Services.

  3. Clique com o botão direito do namespace, classe ou método que você deseja testar e, em seguida, clique em Create Unit Tests.

  4. No Create Unit Tests caixa de diálogo, selecione as caixas de seleção para todos os métodos que você deseja adicionar ao arquivo de teste de unidade.

  5. (Opcional) Clique em configurações para alterar as configurações padrão para os testes de unidade que você está criando. Essas são as configurações de Visual Studio e se aplicam a quaisquer testes de unidade que você crie até que você altere as configurações novamente.

    • As configurações de nomenclatura: Essas opções permitem que você personalize como os arquivos de teste, classes de teste e os métodos de teste são nomeados quando você gera testes de unidade.

    • Marca todos os resultados de teste Inconclusive por padrão: Marque a caixa de seleção para fornecer a cada método de teste com uma instrução Assert.Inconclusive() como um espaço reservado a Assert. Desmarque a caixa de seleção para eliminar o espaço reservado de declarações.

    • Habilite comentários da documentação: Marque a caixa de seleção fornecer comentários de espaço reservado para cada método de teste. Desmarque a caixa de seleção para eliminar os comentários de espaço reservado.

    • Atributo de InternalsVisibleTo homenagem: Marque a caixa de seleção para habilitar os métodos que são marcados como Friend ou Internal sejam tratados como se fossem métodos públicos (recomendados). Desmarque a caixa de seleção usando o acessador privado de testá-los. Para obter mais informações sobre os acessadores privados, consulte Testes de unidade para Private, Internal e os métodos de amigo.

  6. (Opcional) Para adicionar os testes para métodos em assemblies para o qual você não tem o código-fonte, clique em Adicionar Assembly. Para obter mais informações, consulte Como: Criar um teste de unidade sem código-fonte.

  7. No Output project , siga um destes procedimentos:

    • Para criar um novo projeto de teste, selecione um idioma para o novo projeto e clique em OK. A caixa de diálogo New Test Project aparece. Nome do projeto ou aceite o nome padrão e, em seguida, clique em criar.

    • Para acrescentar os métodos que são selecionados na Create Unit Tests caixa de diálogo para o teste de unidade de arquivos em um projeto de teste existente, selecione o projeto na lista suspensa e clique em OK.

Adicionar validação para seus testes de unidade

Cada método de teste em um arquivo de teste de unidade é gerado com variáveis vazias e um espaço reservado a instrução Assert. Você pode executar tal um teste, mas não porque não há nenhum dado real, é possível ver se o método funciona como esperado. Para fazer o teste significativo, você precisará inicializar as variáveis e substitua o espaço reservado a instrução Assert que é apropriado para este método, é freqüentemente a instrução Assert. AreEqual.

Adicionar validação para o teste de unidade

  1. Abra o arquivo de teste de unidade e localize o teste de unidade para o qual você deseja inicializar variáveis.

  2. Localize as atribuições de variável no teste de unidade.

    Nos testes recém-gerados, atribuições de variáveis são marcadas por "todo" declarações de lembrá-lo para personalizar as atribuições. Por exemplo, a seguir é uma atribuição típica que precisa ser editado:

    string target.owner = null; // TODO: Initialize to an appropriate value

  3. Atribuir um valor apropriado a cada variável. Para obter um exemplo de atribuição de variáveis apropriadas, consulte o procedimento "Executar e editar um teste de unidade" in Demonstra Passo a passo: Criar e executar testes de unidade.

    ObservaçãoObservação

    Você pode executar os testes de unidade usando uma série de valores diferentes, criando um teste de unidade orientado a dados. Um teste de unidade baseado em dados é um teste de unidade que é executado repetidamente para cada linha em uma fonte de dados. Para obter mais informações, consulte Como: Criar um teste de unidade orientado a dados.

  4. Localize e edite a instrução Assert no teste de unidade. Para obter mais informações sobre instruções de Assert disponíveis, consulte Usando a Classes Assert.

  5. (Opcional) Adicione o código de instalação e limpeza para os testes de unidade usando o [TestInitialize()] e [TestCleanup()] métodos para a Microsoft.VisualStudio.TestTools.UnitTesting namespace. Quando você gerar um teste de unidade, "atributos adicionais de teste" seção é adicionada ao seu arquivo de teste de unidade. Expanda essa seção para mostrar comentada de métodos que podem ser usados para incluir a limpeza e inicialização.

(Opcional) Criar uma categoria de teste

Você pode gerenciar os testes automatizados Categorizando-los usando as categorias de teste. Para obter mais informações, consulte Definindo categorias de teste para agrupar os testes.

ObservaçãoObservação

Categorias de teste são recomendadas para listas de teste. Categorias de teste permitem que você execute a grupos de testes com base em suas categorias atribuídas sem a necessidade de manter listas de teste.

Para criar uma nova categoria de teste

  1. Abrir o Test View janela.

  2. Selecione um teste.

  3. No painel de propriedades, clique em Categorias de teste e clique nas reticências (…) na coluna mais à direita.

  4. No Categoria de teste janela, na Adicionar nova categoria , digite um nome para a nova categoria de teste.

  5. Clique em Add e, em seguida, clique em OK.

    A nova categoria de teste será atribuída a seu teste e ele estará disponível para outros testes por meio de suas propriedades.

(Opcional) Criar uma lista de teste

As listas de teste são uma maneira de coletar os testes de unidade em grupos lógicos. As principais vantagens de adicionar os testes de unidade para uma lista de teste é que você pode executar testes de unidade de vários arquivos de teste, você pode executá-los como parte de uma compilação e você pode usar as listas para impor uma diretiva de check-in. Para obter mais informações sobre listas de teste, consulte Listas de definição de teste para agrupar os testes.

ObservaçãoObservação

Categorias de teste são recomendadas pela lista de teste. As categorias de teste permitem executar grupos de teste com base em suas categorias atribuídas sem a necessidade de manter listas de teste.

Para criar uma lista de teste

  1. No menu Test, clique em Create New Test List.

  2. No Create New Test List caixa de diálogo, digite um nome para a lista, adicionar uma descrição, selecione onde deseja que a lista de teste devem residir e, em seguida, clique em OK.

  3. Para exibir os testes disponíveis, o Editor de lista de teste janela, clique em All Loaded Tests.

  4. Arraste cada teste de unidade que você deseja adicionar a partir da janela principal para a sua lista de teste.

Executar um teste de unidade

Após os testes de unidade são criados, você pode executá-los a qualquer momento. Esse procedimento fornece uma maneira de executar testes de unidade, mas para obter mais informações sobre métodos alternativos, como o uso de linha de comando ou atalhos de teclado e consulte Como: Executar testes automatizados a partir do Microsoft Visual Studio.

Para executar um teste de unidade

  1. Sobre o teste , aponte para Windowse em seguida, clique em Test View.

  2. (Opcional) Se você quiser coletar informações de cobertura de código, faça o seguinte:

    1. Sobre o teste , aponte para Editar configurações de testee clique em configurações de teste para a execução de teste atual.

    2. No Testar configurações da caixa de diálogo, clique em dados e diagnósticos.

    3. Em função selecione a função que você deseja usar para executar os testes.

    4. Verificar A cobertura de código e, em seguida, clique em Configure.

    5. Selecione a caixa de seleção ou caixas de selecionar itens para o qual deseja coletar informações de cobertura de código.

    6. No Detalhes da cobertura de código caixa de diálogo, clique em OK.

    7. No Testar configurações da clique em caixa de diálogo Aplicar e, em seguida, clique em Fechar.

  3. No Test View janela, selecionados um ou mais testes. Para selecionar vários testes, mantenha a tecla CTRL enquanto clica em testes.

  4. Clique o Run Selection na barra de Test View barra de ferramentas da janela. Os testes executados e a Resultados de teste janela é aberta.

  5. (Opcional) Para ver detalhes sobre um teste, clique com o botão direito no teste na Test Results janela e clique em View Test Results Details.

  6. (Opcional) Para localizar a área do seu arquivo de teste de unidade que contém um erro, na janela de detalhes, em Error Stack Trace, clique em link do erro.

Para obter mais informações sobre Noções básicas sobre os resultados de teste, consulte Revisar os resultados do teste.

(Opcional) Exibir cobertura código

Se você optar por coletar informações de cobertura de código, você pode abrir o A cobertura de código janela para ver qual é a porcentagem dos métodos no código que você está testando foram abordados por seus testes de unidade. Para obter mais informações sobre como verificar a cobertura de código de testes que já foram executados e para obter mais informações sobre como gerenciar os resultados de cobertura de código, consulte Visão geral de dados de cobertura de código..

Para exibir a cobertura de código para testes de unidade

  1. No Resultados de teste janela, na barra de ferramentas, clique em Mostrar resultados da cobertura de código. Talvez você precise ampliar a janela para ver o botão.

  2. A Code Coverage Results janela será aberta.

    Esta janela mostra a extensão à qual o método foi testado.

Consulte também

Tarefas

Como: Adicionar o desempenho de Web, a unidade e testes codificados da interface do usuário para um cenário de teste de carga usando o Editor de teste de carga

Como: Remover testes de desempenho de Web, a unidade e testes codificados da interface do usuário de um cenário de teste de carga usando o Editor de teste de carga

Conceitos

Anatomia de um teste de unidade

Testes de unidade e C++

Testes de unidade para métodos genéricos

Testes de unidade ASP.NET Web Services