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

Injeção do DAO no Service via Construtor

Oi Rodrigo, me tira uma dúvida, a classe que vou testar, meu service implementa o @Autowired da seguinte forma: @Service public class HistoricoTramitacaoService extends AbstractService<HistoricoTramitacaoEntity, HistoricoTramitacaoDAO> { @Autowired private HistoricoTramitacaoDAO historicoTramitacaoDAO; @Override protected HistoricoTramitacaoDAO getDao() { return historicoTramitacaoDAO; } public Long trazTotalHistoricoPorFilaSegmento(String dataInicio, String dataFim, Integer codSegmento) throws PrincipalException, ParseException { return historicoTramitacaoDAO.trazTotalHistoricoPorFilaSegmento(dataInicio, dataFim, codSegmento); } public List listarTramitacaoPorFilaSegmento(String dataInicio, String dataFim, Integer codfilaSegmento) throws PrincipalException { return historicoTramitacaoDAO.listarTramitacaoPorFilaSegmento(dataInicio, dataFim, codfilaSegmento); } } tem como no Test usar o service e injetar o DAO por lá sem ter que criar construtor do DAO na classe service?

2 respostas
solução!

Oi Sergio,

Tem sim, você pode utilizar o recurso de InjectMock do Mockito, que ele instancia a service e injeta nela as dependências automaticamente:

@ExtendWith(MockitoExtension.class)
public class HistoricoTramitacaoServiceTest {

    @InjectMocks
    private HistoricoTramitacaoService service;

    @Mock
    private HistoricoTramitacaoDAO historicoTramitacaoDAO

    //nao precisa mais do metodo com @BeforeEach

}

Bons estudos!

Valeu Rodrigo, mão na roda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software