Usuário com melhor resposta
Dúvidas sobre tecnicas para utilização de Testes Unitários.

Pergunta
-
Olaa,
Pelo que estudei a técnica mais utilizada na utilização de Testes Unitários é a Injeção de Dependência, diante disso surgiram algumas dúvidas:
1) A Injeção de Dependência é a mais indicada ? Se Sim, porque ? Se não, Porque ?
2) Qual outra técnica seria mais aconselhada ? E porque ?
Desde Já, Agradeço.
Novamente Obrigado.
Respostas
-
Olá Rodrigo,
1) Não encare DI como uma regra. É apenas uma solução específica para um cenário específico. Vejamos o porquê:
Para realizar os testes unitários injetando dependências é necessário que sua aplicação possua um baixo grau de acoplamento, ou seja, não encapsule o controle sobre componentes que lidam com outras responsabilidades, o que impede testar esta funcionalidade separadamente.Este problema é resolvido pela inversão de controle, o que possibilita mas não obriga a utilização da injeção de dependência.
No caso de sistemas legados, por exemplo, você provavelmente não conseguirá injetar uma dependência, porém existem outras soluções. Dependendo do grau de acoplamento entre os componentes você poderá trabalhar com factories e/ou locators. (2).
Segue um bom material para entendimento:
http://martinfowler.com/articles/injection.htmlAbs.
@pedrosavelis
- Sugerido como Resposta Pedro Savelis terça-feira, 11 de setembro de 2012 00:40
- Marcado como Resposta _dev quinta-feira, 13 de setembro de 2012 01:32
Todas as Respostas
-
Olá Rodrigo,
1) Não encare DI como uma regra. É apenas uma solução específica para um cenário específico. Vejamos o porquê:
Para realizar os testes unitários injetando dependências é necessário que sua aplicação possua um baixo grau de acoplamento, ou seja, não encapsule o controle sobre componentes que lidam com outras responsabilidades, o que impede testar esta funcionalidade separadamente.Este problema é resolvido pela inversão de controle, o que possibilita mas não obriga a utilização da injeção de dependência.
No caso de sistemas legados, por exemplo, você provavelmente não conseguirá injetar uma dependência, porém existem outras soluções. Dependendo do grau de acoplamento entre os componentes você poderá trabalhar com factories e/ou locators. (2).
Segue um bom material para entendimento:
http://martinfowler.com/articles/injection.htmlAbs.
@pedrosavelis
- Sugerido como Resposta Pedro Savelis terça-feira, 11 de setembro de 2012 00:40
- Marcado como Resposta _dev quinta-feira, 13 de setembro de 2012 01:32
-