Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

MVCTestsEx mais um projeto open source


Fala galera.Quem me conhece provavelmente já me ouviu dizer que "em ASP.NET MVC tudo é testável". Sendo assim nossos controllers também são testáveis. Postei muito sobre isso aqui.A verdade é que testar os results dos controllers começa a ficar um pouco chato. Quando o controller retorna um ActionResult.aspx) é chato verificar se a view retornada é a correta:

var result = controller.Action();
    Assert.AreEqual("Nome",(result as ViewResult).ViewName);
    

Esse cast me incomoda.E fica pior quando queremos verificar alguma coisa no model desse ActionResult:

var result = controller.Action();
var model = ((result as ViewResult).ViewData.Model as TipoDoModel);
    //algum assert

Ficou pior ainda né?!Pensando nisso decidi criar um projeto com alguns helpers para testar controllers no ASP.NET MVC: MVCTestsEx.A idéia é um projeto simples que encapsule algumas operações de testes. Não quero criar um framework de testes! E é por isso que estou usando o NUnit por debaixo dos panos nesse projeto. Quero escrever algo como:

var result = controller.Action();
    result.AssertViewName("SomeName");
    

Isso independente de ser um ActionResult ou um ViewResult.Uma interface fluent também pode surgir, como sugeriu o Juan Lopes:

var result = controller.Action();
    result.Should().Be.View("SomeName");


    

A princípio estou incluindo alguns dos helpers que eu já utilizo em projetos pessoais. Mas a idéia é que conforme eu consiga tempo vá melhorando a sintaxe e a forma como as coisas estão sendo escritas.github

O projeto está no GitHub e pode ser acessado aqui: MVCTestsEx. Você não sabe o que é o GitHub? Em que mundo você vive? Corra aqui, veja o que é(GitHub), estude, e use!Faça um fork do projeto se você achar interessante. Ah, não sabe o que é fork? Corra aqui) e descubra e faça!É isso, o fonte já está lá, com pouca coisa mas caminhando. Esse projeto surgiu enquanto eu trabalhava em outro projeto. Infelizmente eu sou um só, e meus dias são limitados a 24 horas :PAbraços,Vinicius Quaiato.

Voltar

Fork me on GitHub