Eu tinha participado de um treinamento por uma empresa no paraná de teste unitários com Junit, porém o treinamento necessitava de conhecimento prévio, não tive chances de me aprofundar pra valer.
Atualmente a empresa solicitou para mim implementar testes unitários no projeto que estou participando, e tinha muita coisa que eu precisei relembrar.
No treinamento e no atual projeto que participo usasse Spring.
Eu tentei configurar os testes unitários para aceitar a anotação do porque estava dando NullPointException
@Autowired
E meu gestor disse que toda vez que utilizasse essas anotação é porque ele vai fazer uma consulta no banco, pois os dados tem que ser mockados .
-
eu gostaria de saber se isso que ele está certo!
-
Outra dúvida que preciso tirar é saber se é recomendado que os testes sempre sejam testes que não tenham utilização da conexão com o banco!
Observem o método abaixo;
public void importarIndicios(List indicios,
UsuarioLogados usuarioLogado) throws PrincipalException {for (final IndicioEntity indicio : indicios) { indicio.setDataUltimaMovimentacao(getDataAtual()); final SituacaoIndicioEntity situacao = new SituacaoIndicioEntity(); situacao.setCodigo(1); indicio.setSituacaoAtual(situacao); this.inserir(indicio);// salvar indicios final HistoricoEntity historico = new HistoricoEntity(); historico.setCodigoUsuario(usuarioLogado.getCodigo()); historico.setCodigoIndicio(indicio.getCodigo()); historico.setCodigoSituacaoIndicio( indicio.getAtual().getCodigo()); historicoSituacao .setData(indicio.getDataUltima()); historicoService.inserir(historico); } }
Você percebe que o método tem uma assinatura que recebe uma lista de indícios e recebe dados do usuário logado, porém na assinatura não tem como receber o histórico, como realizar um teste unitário com mockito sem ter acesso ao banco nesse contexto?