Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quantidade Testes para esse cenário

Pela resposta do instrutor existiriam dois testes para esse exercício. Mas não daria pra ter apenas um teste que já garantisse isso?

    @Test
    public void deveDevolverLeiloesSemRepeticaoComPeloMenosUmLancePorUsuario(){
        Leilao leilao1 = LeilaoDataBuilder.builder().tendoComo(vendedor)
                .comLanceDe(lucia, 1600)
                .comLanceDe(mario, 1700)
                .comLanceDe(lucia, 1800)
                .construir();
        Leilao leilao2 = LeilaoDataBuilder.builder().tendoComo(vendedor)
                .comLanceDe(mario, 1700)
                .construir();
        Leilao leilao3 = LeilaoDataBuilder.builder().tendoComo(vendedor)
                .construir();

        session.save(leilao1);
        session.save(leilao2);
        session.save(leilao3);

        List<Leilao> leiloesNaoEncerradosPorPeriodo = leilaoDao.listaLeiloesDoUsuario(lucia);

        assertThat(leiloesNaoEncerradosPorPeriodo, hasItem(leilao1));
        assertThat(leiloesNaoEncerradosPorPeriodo, hasSize(1));        
    }
1 resposta
solução!

Oi Felipe, tudo bom?

Realmente, daria pra fazer um teste que cobrisse ambos os casos. Mas, caso um problema pontual ocorra, ao rodar o teste você não saberá exatamente qual foi. Isso porque nesse caso a gente ta deixando os testes meio acoplados. Por exemplo, se houver duplicidade na lista você apenas verá que o teste não passou. Mas não saberá se foi pela duplicidade ou se houve problema ao listar os leilões do usuario em sí. Isso pode tornar o trackeamento do problema um pouco mais complicado, pois você precisaria analisar o resultado do teste antes de tomar uma decisão.

Espero ter ajudado =)

Abraço!