Share via


Demonstra Passo a passo: Criando e executando testes de unidade

Este passo-a-passo irá guiá-criar, executar e personalizar uma série de testes usando o Ferramentas de teste do Team System. Inicie um projeto C# que está em desenvolvimento, crie testes que exercitem seu código, execute os testes e examine os resultados.Em seguida, você pode alterar seu projeto de código e executar novamente os testes.

Observação:

Para obter informações sobre como executar testes de uma linha de comando, consulte Demonstra Passo a passo: Usando o utilitário de teste de linha de comando.

Nesta explicação passo a passo, você irá concluir as seguintes tarefas:

  • Preparar um projeto " conta bancária " para usar em um passo a passo.

  • Abrir um projeto existente.

  • Criar testes de unidade para métodos públicos e privados.

  • Executar os testes no código.

  • Localizar e corrigir erros em testes.

  • Localizar e corrigir erros no código.

Pré-requisitos

Preparar o passo a passo

Para preparar o passo a passo

  1. Abra Visual Studio Team System Test Edition.

  2. No menu File, aponte para New e clique Project.

    A caixa de diálogo New Project será exibida.

  3. Em Project Types, clique em Visual C#.

  4. Em Templates, clique em Class Library.

  5. Na linha Name, digite Bank e clique OK.

    Observação:

    Se o nome " Bank " já estiver sendo usado, escolha outro nome para o projeto.

    O novo projeto Bank é criado e exibido no Solution Explorer.

  6. clicar duas vezes no arquivo Class1.cs no gerenciador de soluções para abri-lo no Visual Studio Editor de código.

  7. Copie o código de fonte do Exemplo de Teste de Unidade.

  8. Substitua o Sumário original de Class1.cs com o código do Exemplo de Teste de Unidade.

  9. On the Compilação menu, clicar Criar solução.

Agora você tem um projeto denominado Bank.Ele contém código-fonte para teste e ferramentas para testá-lo com.O espaço de nomes de Bank, BankAccountNS, contém a classe pública BankAccount, cujos métodos você testará nos procedimentos a seguir.

Criar um teste de unidade

Pré-requisito: Siga as etapas no procedimento, Preparar passo-a-passo.

Para criar um teste de unidade

  1. No Solution Explorer, clique duas vezes no arquivo Class1.cs no projeto do Bank.

    Isso abre o arquivo de origem para exibição e edição.

  2. Na classe BankAccount,no arquivo Class1.cs, role para o método Debit().

  3. clicar com o botão direito do mouse o Debit() método e selecionar Criar testes de unidade.

    Isso exibe a caixa de diálogo Create Unit Tests.

    Em Current selection, uma estrutura de árvore mostra a hierarquia de classe e membro da montagem que abriga a classe BankAccount.Você pode usar esta página para gerar testes de unidade para qualquer seleção desses membros, e para escolher um projeto teste que você deseje gerar os testes de unidade para ser inseridos.

    Na estrutura de árvore, somente o método Debit() é selecionado.Deixe-o selecionado e também selecione o método Credit().

  4. For Projeto de saída, selecionar Criar um novo projeto teste translation from VPE for Csharp Visual.

  5. Clique em Settings.

    A caixa de diálogo Test Generation Settings aparece.Em Naming settings, você pode alterar a maneira como arquivos de teste, classes de teste e métodos de teste são nomeados bem como eles são gerados.Em General, você pode alterar outros aspectos da geração de testes.Deixe os valores padrão para essas configurações e clique OK.

  6. No Criar testes de unidade diálogo, clicar OK.

    A caixa de diálogo New Test Project é exibida.

  7. Aceite o nome padrão e clique Create.

    Isto cria um projeto denominado TestProject1, que é exibido no Solution Explorer.

    Um arquivo chamado BankAccountTest.cs, que contém uma classe de teste é adicionado à TestProject1.A classe é preenchida com uma propriedade TestContext e métodos para testar o Debit() and Credit() métodos.

    Observação:

    Cada método de teste é automaticamente atribuído a TestMethod() atributo.Cada teste corresponde a um único método no código sob teste que você deseja testar.Métodos de teste são abrigados em uma classe de teste que é atribuída o TestClass() atributo.

  8. No BankAccountTest.cs, especifique valores para as variáveis a serem testadas.rolar to the DebitTest método, onde você pode ver // TODO linhas que indicam variáveis para conjunto. Os valores que você deve usar?Para responder que, você deve saber os valores que serão usados quando o aplicativo é executado.Podemos determinar esses valores na etapa seguinte.

  9. em aberto o arquivo Class1.cs e role para o Principal método.Observe que o nome do cliente é inicializado para SR.. Bryan Walton, o Equilíbrio da conta é inicializado para 11.99, the Crédito método é chamado com um parâmetro de 5,77, and the Débito método é chamado com um parâmetro de 11.22.Portanto, se esta conta inicia com um Equilíbrio of 11.99, uma telefonar para o Débito método passando11.22 devem fornecer um novo Equilíbrio of 0.77.

    Observação:

    Você usará isso esperado Equilíbrio valor de (0.77) no procedimento Executar e personalizar um teste de unidade.

  10. No arquivo BankAccountTest.cs, rolar à DebitTest método.

  11. Defina os seguintes valores:

    BankAccount target = new BankAccount("Mr. Bryan Walton", 11.99);
    double amount = 11.22;
    
  12. No arquivo BankAccountTest.cs, faça essas alterações mesmas no CreditTest método.

  13. salvar o arquivo BankAccountTest.cs.

Você criou um arquivo de código-fonte que contém testes para o projeto Bank.Agora você está pronto para executar os testes na classe BankAccountTest no código do projeto Bank.

Executar e personalizar um teste unidade

Pré-requisito: Executar as etapas do procedimento de Criar um teste de unidade.

Para executar e personalizar um teste unidade

  1. em aberto the Modo de Teste janela.

  2. clicar com o botão direito do mouse em DebitTest e clique em Executar seleção.

    Se a janela Test Results não estiver aberta, ela abrirá agora.O teste DebitTest é executado.

    Na coluna Result na janela Test Results, o estado do teste é exibido como Running enquanto o teste está sendo executado.Após a execução do teste terminar, o resultado do teste é alterado para Inconclusive.

  3. Na janela Test Results, clique duas vezes na linha que representa o teste.

    Isso abre a página detalhes Resultados de Teste, que contém informações sobre os resultados do teste.

  4. Observe que a página Detalhes do Resultados de Teste exibe a mensagem de erro "Assert.Inconclusive falhou.Um método que não retorna um valor não pode ser verificado. " Para trabalhar para criar um teste bem-sucedido, inicie localizando e avaliando essa a instrução Assert.

  5. Para localizar o método de teste que contém o Declarar demonstrativo, em aberto o arquivo BankAccountTest.cs e role para o DebitTest() método.

  6. A instrução Assert está na última linha do método DebitTest.Ela é lida da seguinte forma:

    Assert.Inconclusive("A method that does not return a value cannot be verified.");
    

    Comentário sem a instrução Assert.

  7. Se você executou o teste agora, ele deve gerar um resultado Passed, mas somente porque ele testado para nada.Você deve adicionar código que testem para resultados esperados.Adicione a instrução a seguir para o final do método DebitTest:

    Assert.AreEqual((System.Convert.ToDouble(0.77)), target.Balance, 0.05);
    

    Esta instrução compara o resultado esperado (0.77) com o resultado atual de uma chamada para o método Balance da classe BankAccount.Se os dois valores são diferentes, Assert retorna False, que faz o teste falhar.

    Observação:

    Isso Declarar demonstrativo inclui um terceiro parâmetro, delta, com um valor de 0,05.O parâmetro delta é necessário nessa sobrecarga do Assert.AreEqual método; ele indica o erro de arredondamento intrínseco em tipos de ponto flutuante, sistema autônomo Dobra.

Você tem de executar o método DebitTest gerado de sua classe de teste BankAccountTest, indicado que ele precisava de alterações, e fez estas alterações.Ela agora está pronto para testar com precisão o método Debit de seu aplicativo.

Executar um teste de unidade e corrigir seu código

Pré-requisito: Executar as etapas do procedimento de Executar e personalizar um teste de unidade.

Para executar um teste unidade e corrigir seu código

  1. Execute o teste Debit novamente: No arquivo BankAccountTest.cs, clicar com o botão direito do mouse o DebitTest() método e, em seguida, clique em Execute testes.

    Na coluna Result na janela Test Results, o estado do teste é exibido como Running enquanto o teste está sendo executado.Após o teste em execução terminar, o resultado do teste é alterado para Failed.

  2. Na janela Test Results, clique duas vezes na linha que representa o teste.

    Isso abre o teste de página resultados Details, que exibe a mensagem de erro "Assert.AreEqual falhou.Esperado nem maior que <0.05> uma diferença entre o valor esperado <0.77> e o valor real <23.21> ".Esses números parecem indicar uma operação matemática defeituosa.Como o método DebitTest da classe BankAccountTest testa o método Debit da classe BankAccount, inicie verificando o método Debit.

  3. em aberto o arquivo Class1.cs e role para o Débito método.

  4. Observe a atribuição a seguir:

    m_balance += amount;
    

    Esta atribuição adiciona uma quantidade à um saldo quando, em um método Debit, ele deveria ser subtraído.Altere essa linha para a seguinte forma:

    m_balance -= amount;
    
  5. Execute o teste Debit novamente.

    A coluna Result da janela Test Results exibe Passed para DebitTest.

    Observação:

    Você não tinha que reconstruir o projeto após alterar o código fonte porque executar um teste silenciosamente constroem o projeto.

Você criou um teste de unidade que funciona e, através dele, encontrou e corrigiu um erro em seu código.

Criar e executar um teste de unidade para um método privado

Pré-requisito: Execute as etapas no procedimento, Executar um teste de unidade e corrija seu código.

Para criar e executar um teste de unidade para um método privado

  1. Abra o arquivo Class1.cs no projeto Bank.

  2. clicar com o botão direito do mouse o FreezeAccount() método e selecionar Criar testes de unidade.

    Isso exibe a caixa de diálogo Create Unit Tests.

    Na estrutura de árvore exibida, somente o FreezeAccount() método é selecionado.

  3. (Opcional) clicar Filtroe, em seguida, desmarcar Exibir itens não-públicos.Observe que o FreezeAccount() método é removido da lista de filhos métodos da classe BankAccount.clicar Filtro novamente e, em seguida, selecionar Exibir itens não-públicos para exibir novamente a FreezeAccount() método.

  4. Certifique-se de que o FreezeAccount() método está selecionado e, em seguida, clicar OK.

    Isso cria um novo arquivo do acessador particular chamado Bank.accessor.Ele contém métodos acessadores especiais que o teste usa para chamar métodos privados indiretamente na classe BankAccount.Você pode ver o novo arquivo exibido no gerenciador de soluções na pasta de referências de teste.

  5. Abra o arquivo de BankAccountTest.cs e role para o FreezeAccountTest() método.

  6. Alterar o código do FreezeAccountTest() método para que ela seja lida sistema autônomo segue.Áreas alteradas ou novas são indicadas:

    public void FreezeAccountTest()
    {
        BankAccount_Accessor target = new BankAccount_Accessor("Mr. Bryan Walton", 11.99); // TODO: Initialize to an appropriate value
    target.FreezeAccount(); 
        // Assert.Inconclusive("A method that does not return a value cannot be verified.");
            bool creditAccount = false; // False means account could be credited: Fail test.     // Try to credit account    try    {        target.Credit(1.00);     }    catch (System.Exception)    {        // Threw exception. FreezeAccount worked correctly: Pass test.         creditAccount = true;    }        // Assert fails if 'creditAccount' condition is false. Fail test.    Assert.IsTrue(creditAccount, "Was able to credit account.");
    }
    
  7. Executar o FreezeAccountTest teste.

    No Resultado coluna na janela Resultados de Teste, o status do teste final é exibido sistema autônomo Passado.Esse é o resultado esperado porque o teste chamado o Credit() método após congelar a conta, chamando o FreezeAccount() método.

Você adicionou um método privado, criou um novo de teste unidade para ele e executou o teste.Você pode executá-lo outras vezes, usando outros valores limites sistema autônomo 15.00, para o balance variável.

Próximas etapas

Quando você executa testes no código em um assembly, você pode ver a proporção de código do seu projeto que está sendo testado, coletando dados de cobertura de código.Para obter mais informações, consulte Demonstra Passo a passo: Executar testes e exibir cobertura código.

Você pode executar testes em uma linha de comando em vez de em Visual Studio. Para obter mais informações, consulte Demonstra Passo a passo: Usando o utilitário de teste de linha de comando.

Consulte também

Tarefas

Exemplo de Teste de Unidade

Conceitos

Testes de Unidade do Framework

Resultados de teste Reported