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!