Será que todo código difícil de testar isoladamente é mal projetado? Antes de responder a essa pergunta, temos que pensar o que vem a ser, afinal, um código bem projetado. Algumas pistas óbvias nos levam a pensar em alta coesão, baixo acoplamento, design patterns, DRY, SOLID e por aí vai. Agora, você já parou para pensar até onde o TDD é capaz de garantir uma arquitetura de qualidade?
“Nem sempre um código que é muito complexo de testar é um código mal projetado. Tudo depende do contexto, do framework, e do que você deseja obter com a sua arquitetura”, pontua Everton Tavares, desenvolvedor há 12 anos, e líder da comunidade DevParaná. Everton, que faz parte da equipe Mandic-Rivendel alocada no sul do país, apresentou sua palestra “TDD como ferramenta de arquitetura” na trilha DevTest do TDC São Paulo 2018.
Voltando às questões acima, a resposta parece uma só: a arquitetura deve ser planejada, e não garantida pelo TDD. Para Everton, o TDD é uma ferramenta excelente para detectar os “maus cheiros” no design. “Se você tem dificuldade em escrever seus testes, realmente seu código pode estar ruim, talvez esteja muito acoplado ou precise de um teste de integração e não um teste unitário”, comenta.
“Se há excesso de teste em uma única unidade, também pode ser um sinal de que o código está errado, ou mesmo testes ‘inteligentes’, que acabam sendo muito complexos para testar, excesso de validações (asserts) e o famoso ‘efeito cascata’ em testes não relacionados, onde você mexe de um lado da aplicação e acaba ‘quebrando’ o outro”.
Acesse abaixo os slides da palestra do Everton Tavares no TDC 2018:
Tdd como uma ferramenta de arquitetura de ezidiu
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.