t
  • Entreguei o primeiro projeto em #WRT gastei mais tempo configurando o ambiente do que desenvolvendo! A #nokia poderia melhorar isso..

Posts recentes

Comentários recentes

Não faz teste porque não quer!

Postado por Daniel Fonseca Castro - Sunday, June 20, 2010 9:56 AM

Conversando com um amigo ele disse que é difícil praticar teste, ele disse que ainda esta na faculdade e tem acesso apenas a versão express do Visual Studio, as versões express não suporta nenhum tipo de add-in,etc...

Para resolver esse problema existe varias opções de framework, mais vou falar somente do NUnit.O NUnit é uma framework para unit test open source para todas as linguagens .NET com a possibilidade de rodar os testes fora do Visual Studio, sendo assim o problema esta resolvido, você pode escrever os testes com as ferramentas express e depois rodar os testes com o NUnit, vamos ver como isso funciona na pratica.

Você precisa baixar o NUnit http://www.nunit.org/?p=download o setup inclui a framework de teste, outra de mock e um executável que vamos utilizar para rodar os testes, antes de iniciar vale uma olhada no Quick Start para conhece os atributos básicos http://www.nunit.org/index.php?p=quickStart&r=2.5.5 , feito isso crie um projeto ASP.NET MVC e um projeto do tipo Class Library que será o nosso projeto de teste, para esse exemplo estou utilizando o Microsoft Visual Web Developer 2010 Express, para o projeto Class Library (projeto de teste) siga os passos abaixo:

  • Adicione referência a DLL nunit.framework no projeto de teste, essa DLL esta dentro da pasta framework do diretório de instalação do NUnit, no meu caso ela ficou neste caminho C:\Program Files (x86)\NUnit 2.5.5\bin\net-2.0\framework\nunit.framework.dll
  • Agora adicione as referências para o projeto ASP.NET MVC e para DLL System.Web.Mvc
  • Agora é só escreve os testes veja um exemplo abaixo
[TestFixture]
public class HomeControllerTest
{
    [Test]
    public void Index()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        ViewDataDictionary viewData = result.ViewData;
        Assert.AreEqual("Welcome to ASP.NET MVC!", viewData["Message"]);
    }

    [Test]
    public void About()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.About() as ViewResult;

        // Assert
        Assert.IsNotNull(result);
    }
}

Para rodar os teste você precisa abrir o NUnit, no menu Project selecionar Add Assembly , procure a DLL do projeto Class Library, selecione os teste que deseja executar e clicar em Run, veja o resultado na imagem abaixo

Resultado Esperado

Amigos é isso ai, motivos para testar você tem mais de mil, framework para teste não falta, então vamos testar!

Antes de finalizar vou deixar alguns links com outras opções, eu gosto muito do MbUnit http://www.mbunit.com/, com o Gallio fica melhor ainda http://www.gallio.org/ e para executar os testes a partir do Visual Studio você pode utilizar o TestDriven.NET http://www.testdriven.net/. Nem precisa dizer que o TestDriven.NET não funciona com as versões express

Baixe aqui o projeto de exemplo é até a próxima!

Daniel Fonseca Castro

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Related posts

  • Daniel Makiyama
    Daniel Makiyama
    21 Jun 2010 9:38 AM
    Realmente venho me surpreendendo com as opções que temos hoje para testes. Há algumas semanas atrás consegui perceber a real importância de ter um controle efetivo de impactos , ou seja, cobertura de software, graças ao seu auxílio aqui na empresa! E realmente dá para testar tudo, até jquery né com qunit, o mesmo framework de testes utilizado pelo pessoal que desenvolveu o jquery. Recomento!!! Vai ai uma sugestão de um próximo artigo!
  • Daniel Fonseca Castro
    Daniel Fonseca Castro
    25 Jun 2010 6:20 AM
    Olá Daniel

    Você tem razão o QUnit é bem legal e simples de utilizar, vale um post sim vou preparar um!

    Abraços,
    Daniel Fonseca Castro

Add comment


 

  Country flag