Além do coração da sua aplicação e quando falo “coração” estou me referindo às regras de negócio, você precisa testar os Controllers da aplicação e é claro que você não espalha as suas regras de negócio pelos Controllers, eu acredito que a cobertura de testes nos Controllers pode ser menor que a cobertura das regras de negócio, no meu caso acredito que no mínimo 70% dos meus controllers deve estar protegido.
Não importa como você desenha a suas aplicação, mais o papel dos Controllers em uma aplicação ASP.NET MVC é muito claro ,as Actions dentro dos Controllers recebem uma solicitação(request), e retorna (response) alguma coisa, eu liste os tipos de retorno disponíveis em um outro post Conheça os ActionResult disponíveis.
Quando eu testo os meus Controllers eu faço a seguinte pergunta, dado um request o response esta correto? O template padrão do ASP.NET MVC mostra um exemplo muito claro de teste de Controllers, talvez os nomes dos teste não seja o melhor exemplo, mais refatorando ficaria assim.
[TestClass]
public class Home_Controller_Quando_Action_Index
{
[TestMethod]
public void Executada_Com_Sucesso()
{
// 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"]);
}
}
[TestClass]
public class Home_Controller_Quando_Action_About
{
[TestMethod]
public void Executada_Com_Sucesso()
{
// Arrange
HomeController controller = new HomeController();
// Act
ViewResult result = controller.About() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
}
Galera é isso, no próximo post vou falar um pouco de Mock até lá!
Daniel Fonseca Castro