Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Estou com dúvida no curso de Testes de Unidade e TDD, no exercício do capítulo Cuidando dos seus testes.

Esta técnica quebra a lei de demeter? Deve ser utilizada em código de produção?

2 respostas

Não, pois estamos somente encapsulando a criação do objeto. Deve ser utilizada sim em produção, na realidade é uma boa prática, pois deixa o teste mais legível.

solução!

Oi Fernando,

Ótima pergunta.

Se vc interpretar a LdD "seca", quebra. Mas é por uma boa razão, certo? Você está usando outro padrão, "interfaces fluentes", para ganhar em legibilidade.

A Lei de Demeter te ajuda a encontrar casos onde você fura o encapsulamento de maneira implícita, por exemplo:

A a = new A();
a.getB().fazAlgo();

Se B mudar, vc quebra o código que usa B indiretamente por meio de A. Isso é complicado. No curso de SOLID eu falo sobre isso.

Faz sentido?