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

Como cobrir linhas de código para passar no Sonarqube

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á.

2 respostas
solução!

Oi Ivan

Seu teste está ok, o sonar deveria considerar que você passou pelo método, não pode ser configuração no Sonar ignorando o teste que você criou?

Olá Otávio,

Não tenho acesso às configurações do sonar, porque fica no servidor do cliente. Como não possuo experiência com testes, primeiro quis verificar se poderia ser algum erro meu. É o meu primeiro contato. Vou verificar com o cliente então e ver se passa a considerar.

Grande abraço e obrigado.

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