Testabilidade e Injeção de Dependência

Estudando a nossa aplicação do PabxVirtual, percebemos que a forma como a aplicação está desenvolvida impede que criemos testes unitários automatizados em alguns pontos importantes do sistema. Para contornar o problema, adotamos testes de aceitação, como forma de garantir que nosso sistema não falhará. O grande problema destes testes é que quanto apontam algum erro, existe uma grande dificuldade de diagnosticar onde está o erro.
 
Analisando o problema a fundo e depois de uma grande ajuda do Dediana, percebi uma boa sáida para o nosso problema. A solução é usar  Injeção de Dependência.
 
Encontrei um artigo que resume bem o que é Injeção de Dependência e como resolvê-la para o caso específico de quem usa Java + Struts: http://jakubkorab.blogspot.com/2005/04/dependency-injection-with-spring-and.html. Não sei como funcionaria em .NET, mas acho que deve existir algo similar. Vamos tentar abordar este assunto no grupo de estudos.
 
Muitas vezes deixamos de criar testes. Normalmente isso acontece por algumas razões: 

  1. Não sabemos como criar tais testes
  2. Não temos o hábito de criar testes
  3. Nosso chefe não deixa (espero que esse não seja o caso…)
  4. Não queremos criar testes (espero que isso também não seja o caso)
O ponto que enfatizo é o de poder tornar os sistemas cada vez mais testáveis. O uso de  Injeção de Dependência é uma ótima técnica. Ela permite a criação de testes unitários antes imaginados como impossíveis. Com isso amenizamos as razões 1 e 2 citadas acima.

Leave a Reply

Your email address will not be published. Required fields are marked *