Qual é a melhor maneira de fazer testes unitários para páginas da web ASP.NET 2.0?[fechado]

StackOverflow https://stackoverflow.com/questions/4363

Pergunta

Alguma sugestão?Usando o visual studio em C#.

Existem ferramentas específicas para usar ou métodos para abordar isso?

Atualizar:

Desculpe, eu deveria ter sido um pouco mais específico.Estou usando ASP.Net 2.0 e estava procurando mais uma ferramenta como jUnit para Java.Dei uma olhada no NUnit e no NUnitAsp e parece muito promissor.E eu nem sabia que o Visual Studio Pro tem um conjunto de testes, então examinarei todas essas opções (comecei a usar o Visual Studio/Asp.net/C# neste verão).

Foi útil?

Solução

Rapaz, essa é uma pergunta bastante geral.Farei o meu melhor, mas esteja preparado para me ver errar por um quilômetro.

Premissas

  1. Você está usando ASP.NET, não ASP simples
  2. Você realmente não quer testar suas páginas da web, mas o lógica atrás deles.O teste de unidade das páginas .ASPX reais é bastante doloroso, mas existem estruturas disponíveis para fazer isso. NUnitAsp é um.

A primeira coisa a fazer é organizar (ou planejar) seu código para que ele possa ser testado.Os dois padrões de design mais populares para isso na época parecem ser MVP e MVC.Ambos separam o lógica da aplicação longe do visualizar para que você possa testar a lógica sem que a visualização (páginas da web) atrapalhe.

Tanto MVP quanto MVC serão eficazes.MVC tem a vantagem de ter um framework Microsoft quase pronto para ir.

Depois de selecionar um padrão de estrutura que incentive a testabilidade, você precisará usar uma ferramenta de teste unitário. NUunidade é um bom ponto de partida.O Visual Studio Professional tem um suíte de testes construiu, mas NUnit + TestDrive.NET também funciona no IDE.

Isso é uma espécie de explosão de informações.Espero que alguns se acertar.A estante pragmática tem um bom livro abordando o assunto.

Outras dicas

Houve uma série de screencasts há cerca de um ano no Polymorphic Podcast que fez uma introdução muito boa de uma implementação de MVP em ASP.NET.Implementados dessa forma, os testes unitários se encaixam com muito mais naturalidade.

http://polymorphicpodcast.com/shows/mv-patterns/

Essas estruturas são úteis para integração testes, mas não podem fornecer testes unitários, ou seja, testar a View isolada de persistência, lógica de negócios, seja o que for.

Para unidade testando Webforms Asp.Net, bem como MVC, você pode usar Ivona.Por exemplo, você pode simular o acesso ao seu banco de dados e verificar se os registros simulados são exibidos no datagrid.Ou você pode simular o provedor de associação e testar o cenário conectado sem precisar navegar até a página de login e inserir suas credenciais, como acontece com o teste de integração.

WatiN é o melhor que encontrei.Ele se integra ao teste de unidade do Visual Studio ou nunit e você pode fazer praticamente qualquer coisa que precisar no navegador (clicar em links, enviar formulários, procurar texto/imagens, etc.), além de estar escrito em .net para que você não precise ter o Ruby instalado (como você faz com o watir, que é uma ferramenta incrível, no entanto)

Dê uma olhada http://selenium.openqa.org/ ele oferece uma boa maneira automatizada de criar testes de unidade conectados ao navegador.existe um ótimo plugin do Firefox para gravar testes e pode utilizar praticamente qualquer estrutura de teste de unidade.Tivemos uma apresentação/demonstração em nossa reunião de grupo de usuários local no mês passado e ficou incrível.

Sua melhor aposta é separar a lógica do modelo da apresentação e testar completamente a unidade do modelo com NUnit ou similar.Testar a interação dos usuários com a página da web pode ser complicado.

Se você realmente deseja testar a unidade da interação dos usuários com a página da web, algumas das ferramentas mencionadas, como waitn, parecem boas, uma adição ao que ouvi falar é Selênio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top