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
- O projeto Bank Woodgrove.Consulte Exemplo de Teste de Unidade.
Preparar o passo a passo
Para preparar o passo a passo
Abra Visual Studio Team System Test Edition.
No menu File, aponte para New e clique Project.
A caixa de diálogo New Project será exibida.
Em Project Types, clique em Visual C#.
Em Templates, clique em Class Library.
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.
clicar duas vezes no arquivo Class1.cs no gerenciador de soluções para abri-lo no Visual Studio Editor de código.
Copie o código de fonte do Exemplo de Teste de Unidade.
Substitua o Sumário original de Class1.cs com o código do Exemplo de Teste de Unidade.
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
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.
Na classe BankAccount,no arquivo Class1.cs, role para o método Debit().
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().
For Projeto de saída, selecionar Criar um novo projeto teste translation from VPE for Csharp Visual.
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.
No Criar testes de unidade diálogo, clicar OK.
A caixa de diálogo New Test Project é exibida.
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.
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.
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.
No arquivo BankAccountTest.cs, rolar à DebitTest método.
Defina os seguintes valores:
BankAccount target = new BankAccount("Mr. Bryan Walton", 11.99); double amount = 11.22;
No arquivo BankAccountTest.cs, faça essas alterações mesmas no CreditTest método.
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
em aberto the Modo de Teste janela.
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.
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.
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.
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.
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.
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
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.
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.
em aberto o arquivo Class1.cs e role para o Débito método.
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;
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
Abra o arquivo Class1.cs no projeto Bank.
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.
(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.
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.
Abra o arquivo de BankAccountTest.cs e role para o FreezeAccountTest() método.
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."); }
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.