Olá,
Estou iniciando em testes de software e estou com uma dificuldade que acredito ser básica, desculpem se a dúvida for boba...
Gostaria de saber como posso fazer um teste que passe pelo Sonarqube. Eu tentei criar um teste mas o sonar avaliou que as linhas não foram cobertas por teste. Qual seria a maneira correta ?
O ambiente é em Java 8, jUnit5, mockito, Spring Boot com jdbcTemplate
Abaixo a classe que está no repository:
1 @Override
2 public List<Instalacao> filterNomeInstalacao() {
3 String sQL = "Select Distinct NM_INSTALACAO from (" + "Select "
4 + " CASE WHEN INST_NM_REDUZIDO_GENERICO IS NULL THEN "
5 + " CASE WHEN INST_NM_REDUZIDO IS NULL THEN " + 6" INST_NM_RAZAO_SOCIAL "
7 + " ELSE " + " INST_NM_REDUZIDO " + " 8 END " + " ELSE "
9 + " INST_NM_REDUZIDO_GENERICO "
10 + " END AS NM_INSTALACAO, inst_nr_latitude, inst_nr_longitude "
11 + "from PV_INSTALACAO_ALT ) AS dados " + "order by
12 NM_INSTALACAO";
13 return namedParameterJdbcTemplate.query(sQL, (rs, rowNum) -> new 14 Instalacao("0", rs.getString("NM_INSTALACAO"),
15 "", "", null, 0, 0, "", "", 0.0, 0.0));
16 }
O sonar reclama que as linhas de 3 a 15 não foram cobertas por testes.
Abaixo a classe de Teste:
1 @Test
2 public void filterNomeInstalacaoTest() {
3 logger.info("InstalacaoRepositoryIntTest::listInstalacoesTest()");
4 List<Instalacao> Instalacoes =
5 instalacaoRepository.filterNomeInstalacao();
6 assertNotNull(Instalacoes);
7 }
Na linha 5 eu chamo o método que trás uma lista e verifico se ela não está nula. Porque o sonar diz que não tem teste? O que fiz de errado? O que falta?
Obrigado desde já.