1
resposta

Porque SolicitacaoAdocaoDto não foi mockado?

Durante o vídeo, o método SolicitacaoAdocaoDto, que estava mockado, foi instanciado. Realizei o teste mockando essa classe, ao invés de instanciar e também funcionou normalmente.

Porque foi tirado o mock dessa classe durante o vídeo? Não ficou claro pra mim

1 resposta

Oi, Francisco, tudo bem?

OSolicitacaoAdocaoDto é um objeto de transferência de dados (Data Transfer Object - DTO) que carrega os dados entre processos. Nesse caso, o DTO está sendo usado para passar os dados para o método solicitar().

Normalmente, não é necessário mockar um DTO, pois ele não contém lógica de negócios que precisa ser testada. Ele apenas contém campos e métodos de acesso (getters e setters), e você pode instanciar um DTO, preencher seus campos e passá-lo para o método que está sendo testado.

No vídeo, o SolicitacaoAdocaoDto foi instanciado da seguinte maneira:

this.dto = new SolicitacaoAdocaoDto(10l, 20l, "motivo qualquer");

E então, esse DTO foi usado para configurar os mocks:

given(petRepository.getReferenceById(dto.idPet())).willReturn(pet);
given(tutorRepository.getReferenceById(dto.idTutor())).willReturn(tutor);

E também foi passado para o método solicitar() que está sendo testado:

service.solicitar(dto);

Se você mochasse o SolicitacaoAdocaoDto, você teria que configurar o comportamento do mock para cada chamada de método getter. Isso poderia tornar o teste mais complexo e menos legível. Além disso, se o DTO fosse alterado no futuro (por exemplo, se um novo campo fosse adicionado), você teria que atualizar o teste para configurar o comportamento do novo método getter.

Por outro lado, ao instanciar o DTO, você pode facilmente preencher seus campos e passá-lo para o método que está sendo testado. Se o DTO for alterado no futuro, o compilador irá informá-lo se você esquecer de definir algum campo, tornando o teste mais fácil de manter.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!