Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico demonstra como usar o recurso Gerar do Uso, que oferece suporte ao desenvolvimento de test-first.
O primeiro desenvolvimento de teste é uma abordagem para o design de software na qual você primeiro escreve testes de unidade com base nas especificações do produto e, em seguida, grava o código-fonte necessário para fazer os testes terem êxito. O Visual Studio dá suporte ao desenvolvimento de teste primeiro gerando novos tipos e membros no código-fonte quando você os referencia pela primeira vez em seus casos de teste, antes que eles sejam definidos.
O Visual Studio gera os novos tipos e membros com interrupção mínima no fluxo de trabalho. Você pode criar stubs para tipos, métodos, propriedades, campos ou construtores sem deixar seu local atual no código. Quando você abre uma caixa de diálogo para especificar opções de geração de tipo, o foco retorna imediatamente para o arquivo aberto atual quando a caixa de diálogo é fechada.
O recurso Gerar com Base no Uso pode ser usado com estruturas de teste integradas ao Visual Studio. Neste tópico, o Microsoft Unit Testing Framework é demonstrado.
Observação
As instruções deste artigo ilustram a versão mais recente da experiência de desenvolvimento interativo (IDE) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Talvez você esteja usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.
Criar um projeto da Biblioteca de Classes do Windows e um projeto de teste
No C# ou no Visual Basic, crie um novo projeto da Biblioteca de Classes do Windows . Nomeie-o
GFUDemo_VBouGFUDemo_CS, dependendo de qual idioma você está usando.No Gerenciador de Soluções, clique com o botão direito do mouse no ícone da solução na parte superior, escolha Adicionar>Novo Projeto.
Crie um novo projeto do Projeto de Teste de Unidade (.NET Framework ).
Adicionar uma referência ao projeto biblioteca de classes
No Gerenciador de Soluções, em seu projeto de teste de unidade, clique com o botão direito do mouse na entrada Referências e escolha Adicionar Referência.
Na caixa de diálogo Gerenciador de Referência , selecione Projetos e selecione o projeto da biblioteca de classes.
Escolha OK para fechar a caixa de diálogo Gerenciador de Referência .
Salve sua solução. Agora você está pronto para começar a escrever testes.
Gerar uma nova classe a partir de um teste de unidade
O projeto de teste contém um arquivo chamado UnitTest1. Clique duas vezes neste arquivo no Gerenciador de Soluções para abri-lo no editor de código. Uma classe de teste e um método de teste foram gerados.
Localize a declaração da classe
UnitTest1e renomeie-a paraAutomobileTest.Observação
O IntelliSense agora fornece duas alternativas para a conclusão da instrução IntelliSense: modo de conclusão e modo de sugestão. Use o modo de sugestão para situações em que classes e membros são usados antes de serem definidos. Quando uma janela do IntelliSense está aberta, você pode pressionar Ctrl+Alt+Space para alternar entre o modo de conclusão e o modo de sugestão. Consulte Usar o IntelliSense para obter mais informações. O modo de sugestão ajudará quando você estiver digitando
Automobilena próxima etapa.Localize o método e renomeie-o
TestMethod1()paraDefaultAutomobileIsInitializedCorrectly(). Dentro desse método, crie uma nova instância de uma classe nomeadaAutomobile, conforme mostrado nas capturas de tela a seguir. Um sublinhado ondulado é exibido, indicando um erro em tempo de compilação e uma lâmpada de erro de Ações Rápidas aparece na margem esquerda ou diretamente abaixo do rabisco, se você passa o mouse sobre ele.

Escolha ou clique na lâmpada Ações Rápidas . Você verá uma mensagem de erro informando que o tipo
Automobilenão está definido. Você também recebe algumas soluções.Clique em Gerar novo tipo para abrir a caixa de diálogo Gerar Tipo . Essa caixa de diálogo fornece opções que incluem a geração do tipo em um projeto diferente.
Na lista Projeto , clique em GFUDemo_VB ou GFUDemo_CS para instruir o Visual Studio a adicionar o arquivo ao projeto da biblioteca de classes em vez do projeto de teste. Se ainda não estiver selecionado, escolha Criar novo arquivo e nomeie-o Automobile.cs ou Automobile.vb.

Clique em OK para fechar a caixa de diálogo e criar o novo arquivo.
No Gerenciador de Soluções, procure no nó de projeto GFUDemo_VB ou GFUDemo_CS para verificar se o novo arquivo Automobile.vb ou Automobile.cs está lá. No editor de código, o foco ainda está em
AutomobileTest.DefaultAutomobileIsInitializedCorrectly, o que permite que você continue gravando seu teste com um mínimo de interrupção.
Gerar um stub de propriedade
Suponha que a especificação do produto indica que a Automobile classe tem duas propriedades públicas nomeadas Model e TopSpeed. Essas propriedades devem ser inicializadas com valores padrão de "Not specified" e -1 pelo construtor padrão. O teste de unidade a seguir verificará se o construtor padrão define as propriedades como seus valores padrão corretos.
Adicione a seguinte linha de código ao
DefaultAutomobileIsInitializedCorrectlymétodo de teste.Como o código faz referência a duas propriedades indefinidas em
Automobile, uma linha ondulada aparece sobModeleTopSpeed. Passe o mouse sobreModel, escolha a lâmpada de erro Ações Rápidas e, em seguida, escolha Gerar propriedade 'Automobile.Model'.Gere um stub de propriedade para a propriedade
TopSpeedda mesma maneira.AutomobileNa classe, os tipos das novas propriedades são inferidos corretamente do contexto.
Gerar um stub para um novo construtor
Agora, criaremos um método de teste que gerará um stub de construtor para inicializar as propriedades Model e TopSpeed. Posteriormente, você adicionará mais código para concluir o teste.
Adicione o seguinte método de teste adicional à sua
AutomobileTestclasse.Clique na lâmpada de erro Ações Rápidas sob a linha ondulada vermelha e, em seguida, clique em Gerar construtor em 'Automobile'.
No arquivo da classe
Automobile, observe que o novo construtor examinou os nomes das variáveis locais que são usadas na chamada do construtor, encontrou propriedades que têm os mesmos nomes na classeAutomobilee incluiu código no corpo do construtor para armazenar os valores de argumento nas propriedadesModeleTopSpeed.Depois de gerar o novo construtor, um sublinhado ondulado aparece sob a chamada para o construtor padrão em
DefaultAutomobileIsInitializedCorrectly. A mensagem de erro afirma que a classeAutomobilenão possui um construtor que aceite zero argumentos. Para gerar um construtor padrão explícito que não tenha parâmetros, clique na lâmpada de erro ações rápidas e clique em Gerar construtor em 'Automóvel'.
Gerar um stub para um método
Suponha que a especificação indica que um novo Automobile pode ser colocado em um IsRunning estado se suas Model propriedades e TopSpeed propriedades forem definidas como algo diferente dos valores padrão.
Adicione as linhas a seguir ao
AutomobileWithModelNameCanStartmétodo.Clique na lâmpada de erro de Ações Rápidas para a chamada do método
myAuto.Starte clique em Gerar método 'Automobile.Start'.Clique na lâmpada Ações Rápidas referente à propriedade
IsRunninge clique em Gerar a propriedade 'Automobile.IsRunning'.A
Automobileclasse agora contém um método chamadoStart()e uma propriedade chamadaIsRunning.
Executar os testes
No menu Teste , escolha Executar>Todos os Testes.
O comando Executar>Todos os Testes executa todos os testes em quaisquer estruturas de teste gravadas para a solução atual. Nesse caso, há dois testes e ambos falham, conforme o esperado. O
DefaultAutomobileIsInitializedCorrectlyteste falha porque aAssert.IsTruecondição retornaFalse. OAutomobileWithModelNameCanStartteste falha porque oStartmétodo naAutomobileclasse gera uma exceção.A janela Resultados do Teste é mostrada na ilustração a seguir.

Na janela Resultados do Teste , clique duas vezes em cada linha de resultado do teste para ir para o local de cada teste.
Implementar o código-fonte
Adicione o código a seguir ao construtor padrão para que as propriedades
Model,TopSpeedeIsRunningsejam todas inicializadas para seus valores padrão corretos de"Not specified",-1eFalse(oufalsepara C#).Quando o método
Starté chamado, ele deve definir o sinalizadorIsRunningcomo true somente se as propriedadesModelouTopSpeedforem definidas como algo diferente de seu valor padrão. Remova oNotImplementedExceptiondo corpo do método e adicione o código a seguir.
Executar os testes novamente
No menu Teste , aponte para Executar e clique em Todos os Testes.
Desta vez, os testes são aprovados. A janela Resultados do Teste é mostrada na ilustração a seguir.
