Este tópico descreve o passo-a-passo o processo de criação mais simples de teste de unidade no Microsoft Visual Studio 2010 (C#) para Aplicação de Consola. Usando este exemplo, você pode aprender como criar seus próprios testes de unidade. O exemplo também demonstra como usar a classe Assert para teste.

Conteúdo

  • Task
  • Instruções
    • 1. Crie um aplicativo usando o modelo de aplicativo do Console
    • 2. Preparando o texto do programa.módulo cs
      • 2.1. Adicionando a função Min ()
      • 2.2. Tornar pública a classe do programa
    • 3. Listagem do programa em teste
    • 4. Criando um teste
      • 4.1. Adicionando um novo projeto à solução
      • 4.2. Estrutura da solução
      • 4.3. Código do programa de ” UnitTest1.arquivo “cs”. Atributos e
      • 4.4. Fazendo alterações no texto UnitTest1.módulo cs. Alterando o nome do método de teste
      • 4.5. Conectando o projeto MinApp ao Projeto TestMinApp
      • 4.6. Modificação do UnitTest1.texto do módulo cs
        • 4.6.1. Adicionando o namespace MinApp a UnitTest1.cs
        • 4.6.2. Texto do método TestMin()
      • 4.7. O texto da UnitTest1.módulo cs
    • 5. Execute o teste e verificando o resultado do teste
    • 6. Resultado. Interação entre projetos
  • tópicos relacionados

pesquise outros sites:

tarefa

para um aplicativo de tipo de aplicativo de Console, desenvolva um teste de unidade que teste a função Min (). Para a função Min (), defina o método de teste TestMin (). Teste o resultado das funções.

instruções

1. Crie um aplicativo usando o modelo de aplicativo do Console

execute o MS Visual Studio 2010. Para criar um projeto usando o modelo de aplicativo do Console, você precisa chamar a seguinte sequência de comando:

File -> New -> Project...

como resultado, a nova janela do projeto é aberta. Na janela, selecione o modelo “Aplicativo Do Console”, conforme mostrado na Figura 1. O modelo é selecionado na Guia Visual C#.

 C#. Formulários Do Windows. A janela "Novo Projeto". Selecionando o "aplicativo do Console"

Figura 1. A janela “Novo Projeto”. Selecionando o “aplicativo do Console”

2. Preparando o texto do programa.módulo cs

2.1. Adicionando a função Min ()

no corpo da classe do programa, você precisa adicionar o texto da função Min (). A função é declarada como pública e estática. O texto da função Min ()

 C#. A janela do MS Visual Studio, o módulo " programa.cs"

Figura 2. A janela do MS Visual Studio, o módulo ” programa.cs”

2.2. Torne a classe do programa pública

para acessar a função Min () da classe do programa, você precisa tornar essa classe pública. Para fazer isso, antes da declaração de classe, você precisa definir a palavra-chave pública.

...namespace MinApp{ public class Program { // методы класса // ... }}...

depois disso, o programa testado está pronto.

3. Listagem do programa em teste

no momento em que o código do programa em teste é o seguinte:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MinApp{ public class Program { public static int Min(int a, int b, int c) { int min = a; if (min > b) min = b; if (min > c) min = c; return min; } static void Main(string args) { Console.WriteLine("Demo of Unit-testing in C#."); } }}

como este programa será testado a partir de outro módulo de teste, na função Main (), você não precisa digitar mais nada. Como, de acordo com a condição da tarefa, você precisa testar a operação da função Min (). E isso já será feito a partir do módulo de teste. No momento, nosso programa está pronto para testes.

4. Criando um teste

o teste é criado por um projeto separado na solução. O programa que você está testando não sabe sobre isso. O programa de teste que testará chama as funções do programa que está sendo testado. No nosso caso, o programa de teste chamará a função

int Min(int, int, int);

4.1. Adicionando um novo projeto à solução

para esta solução, um novo projeto é adicionado usando o comando

File->Add->New Project...

a janela para criar um novo projeto é mostrada na Figura 3.

 C#. Aplicação Formulários Do Windows. A janela para criar um projeto de projeto de teste de tipo

Figura 3. A janela para criar um projeto de projeto de teste de tipo

na janela, você precisa selecionar o grupo de modelos

Visual C# -> Test

nos modelos exibidos, o modelo de Projeto “Projeto de teste” é selecionado. O campo “nome” indica o nome do projeto que testará nosso programa. Você precisa definir, por exemplo, TestMinApp. O projeto está localizado em uma pasta separada “E:\Test\MinApp”.

 C#. O " UnitTest1.arquivo "cs". A janela do Solution Explorer com os projetos TestMinApp e MinApp exibiu

Figura 4. O ” UnitTest1.arquivo “cs”. A janela do Solution Explorer com os projetos TestMinApp e MinApp exibidos

4.2. Estrutura da solução

como você pode ver na Figura 4, O Solution Explorer exibe a estrutura de itens da solução, que contém dois projetos:

  • o projeto MinApp. Este é um projeto criado usando o modelo “Console Application” com a função Min() a ser testada;
  • o projeto TestMinApp. Este projeto foi projetado para testar as funções do projeto MinApp. O código do programa que testa a função Min () será adicionado ao arquivo de projeto UnitTest1 do projeto TestMinApp.

ambos os projetos podem ser executados independentemente um do outro.

4.3. Código do programa de ” UnitTest1.arquivo “cs”. Atributos e

no projeto TestMinApp, o UnitTest1.o arquivo de teste cs é de interesse primário. Este arquivo contém métodos que testarão as funções do projeto MinApp. O projeto TestMinApp pode conter qualquer número de arquivos que contenham testes (por exemplo, UnitTest2.cs, UnitTest3.cs, etc.).

Código do Programa de ” UnitTest1.o arquivo cs”, gerado pelo MS Visual Studio 2010, é o seguinte:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}

como você pode ver no código acima, o arquivo contém uma classe chamada UnitTest1. A classe envolve um método público chamado TestMethod1 ().Antes de implementar o método TestMethod1 (), o atributo é colocado. Isso significa que no corpo do método precisa escrever código que irá testar as funções do projeto MinApp.

na classe, você pode inserir qualquer número de métodos que testarão diferentes funções de diferentes módulos. O principal é que esses métodos sejam notados pelo atributo .

4.4. Fazendo alterações no texto UnitTest1.módulo cs. Alterando o nome do método de teste

você pode alterar os nomes dos métodos e adicionar novos métodos marcados com o atributo no UnitTest1.módulo cs. Com isso em mente, em UnitTest1.cs, o método TestMethod1() deve ser renomeado para TestMin().

depois que as alterações são feitas, o texto abreviado de UnitTest1.o módulo de arquivo cs será semelhante:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}

4.5. Ligar o MinApp projeto para o TestMinApp projeto

Para acessar a função Min () (a MinApp projeto) do TestMinApp projeto, você precisa montar o namespace no qual esta função é declarada.

para fazer isso, primeiro você precisa chamar o menu de contexto para o projeto TestMinApp. Em seguida, no menu de contexto, você precisa chamar o comando “Adicionar referência …” (Figura 5).

 C#. Criação de teste de unidade. O " Adicionar Referencse..."comando

Figura 5. Como resultado, a janela “Adicionar Referência” é aberta, na qual você seleciona o projeto MinApp.

 C#. Teste de unidade criando a janela "Adicionar Referência". Conexão do projeto MinApp

Figura 6. A janela “Adicionar Referência”. Conexão do projeto MinApp

após as ações executadas, as funções do projeto MinApp estarão disponíveis para uso no projeto TestMinApp.

 C#. Aplicação Formulários Do Windows. A guia "Referências" com o projeto minapp conectado

Figura 7. A guia “Referências” com o projeto minapp conectado

4.6. Modificação do UnitTest1.texto do módulo cs
4.6.1. Adicionando o namespace MinApp a UnitTest1.cs

nesta etapa, você precisa adicionar o namespace MinApp ao UnitTest1.cs usando a diretiva “usar”:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}

4.6.2. Texto do método TestMin ()

no texto do método TestMin (), você precisa inserir o seguinte código:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. O texto da UnitTest1.módulo cs

o texto de todos os UnitTest1.o módulo cs é o seguinte:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}

5. Execute o teste e verificando o resultado do teste

no Microsoft Visual Studio 2010 para testes unitários, um menu especial ‘Test’ é implementado.Para executar o teste, você deve selecionar um dos comandos

Test -> Run -> Tests in Current Context

ou

Test -> Run -> All Tests in Solution

conforme mostrado na Figura 8.

 C#. Criação de teste de unidade. Chamando o comando test e visualizando o resultado

Figura 8. Chamando o comando test e visualizando o resultado

após iniciar o teste, o resultado pode ser visualizado à esquerda na janela Test Explorer. Como pode ser visto na Figura 8, o teste não é passado. Isso é lógico, porque na função Assert.AreEqual () comparamos os números 2 e 3, que são diferentes. Aqui o número 2 é inserido especialmente em vez do número 3.

se, em vez do número 2, você inserir a resposta correta – número 3 (mínimo entre 3, 4, 5), o teste será enviado (Figura 9). Nesse caso, o texto do método TestMin () será o seguinte:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

a janela de resultados é mostrada na Figura 9.

 C#. Criação de teste de unidade. Resultado do teste para o caso quando você insere a resposta correta

Figura 9. Resultado do teste para o caso quando você insere a resposta correta

agora podemos concluir que a função Min() funciona corretamente para este caso.

6. Resultado. Interação entre projetos

nesta tarefa, a solução envolve dois projetos. Um projeto MinApp contém a função Min () a ser testada. O segundo projeto TestMinApp contém métodos de teste. No Microsoft Visual Studio 2010, cada um dos projetos é executado usando vários comandos de menu. Portanto, o projeto MinApp é executado da maneira padrão no menu Executar. E o projeto TestMinApp é lançado a partir de um menu especial de ‘teste’.

Leave a comment

O seu endereço de email não será publicado.