1
resposta

Injeção de dependências

Fiquei com uma dúvida em relação á esse tópico. Eu acredito que nesse caso, seja mais para mostrar os recursos que o Mockito nos oferece.

Mas caso não fosse por isso, uma solução seria receber o objeto de Pagamento a ser gerado pelo construtor. Dessa forma, eu não teria problema em testar a classe GeradorDePagamento.

Há um tempo, comecei a perceber que quando temos um new Objeto() dentro de uma classe, a gente pode trabalhar com o padrão de injeção de dependências justamente para facilitar os testes e também pelo fato da classe não ser responsável por criar esse objeto diretamente. Definindo isso pelo construtor, fica até melhor a leitura (classe fica mais expressiva, informando quais os parâmetros ela precisa pra funcionar.)

Faz sentido?

1 resposta

Oi Leonardo,

Na verdade nesse caso em si não daria para receber o objeto pagamento pelo construtor, pois o objetivo da classe GeradoDePagamento é justamente criar o objeto pagamento, que faz parte da lógica dessa classe.

Aí então o recurso do Mockito para testar nesse tipo de situação.

A injeção de dependências ajuda a evitar bastante instanciar objetos nas classes, mas geralmente é utilizada para lidar com classes de infra(service, repository, etc.) ou com classes que executam alguma lógica de negócios na aplicação(validador, conversor, etc.). Mas no exemplo dessa aula a classe pagamento se trata de um objeto de domínio mesmo.

Bons estudos!