A resposta do instrutor para esse caso não cobre cenários onde o leilão foi encerrado, limites mínimos e máximos do valor mínimo (incluindo e excluindo registros). Da maneira que está já estaria ok o teste?
Fiz um teste tentando incluir as variações da query.
@Test
public void deveTrazerLeiloesNaoEncerradosComNoMinimoTresLancesEDentroDeUmIntervaloValoresMinimo() {
Leilao leilao1 = LeilaoDataBuilder.builder().tendoComo(vendedor).iniciandoEm(1600).encerrado()
.comLanceDe(lucia, 1601)
.comLanceDe(mario, 1650)
.comLanceDe(lucia, 1750)
.comLanceDe(mario, 1850)
.construir();
Leilao leilao2 = LeilaoDataBuilder.builder().iniciandoEm(1149).tendoComo(vendedor)
.comLanceDe(lucia, 1150)
.comLanceDe(mario, 1251)
.comLanceDe(lucia, 1350)
.comLanceDe(mario, 1350)
.construir();
Leilao leilao3 = LeilaoDataBuilder.builder().iniciandoEm(1600).tendoComo(vendedor)
.comLanceDe(lucia, 1601)
.comLanceDe(mario, 1650)
.comLanceDe(lucia, 1750)
.comLanceDe(mario, 1850)
.construir();
Leilao leilao4 = LeilaoDataBuilder.builder().iniciandoEm(1149).tendoComo(vendedor)
.comLanceDe(lucia, 1150)
.comLanceDe(mario, 1251)
.comLanceDe(lucia, 1251)
.construir();
Leilao leilao5 = LeilaoDataBuilder.builder().iniciandoEm(1601).tendoComo(vendedor)
.comLanceDe(lucia, 1601)
.comLanceDe(mario, 1650)
.comLanceDe(lucia, 1750)
.comLanceDe(mario, 1850)
.construir();
Leilao leilao6 = LeilaoDataBuilder.builder().iniciandoEm(1148).tendoComo(vendedor)
.comLanceDe(lucia, 1601)
.comLanceDe(mario, 1650)
.comLanceDe(lucia, 1750)
.comLanceDe(mario, 1850)
.construir();
session.save(leilao1);
session.save(leilao2);
session.save(leilao3);
session.save(leilao4);
session.save(leilao5);
session.save(leilao6);
List<Leilao> leiloesNaoEncerradosPorPeriodo = leilaoDao.disputadosEntre(1149, 1600);
assertThat(leiloesNaoEncerradosPorPeriodo, allOf(hasItem(leilao2), hasItem(leilao3)));
assertThat(leiloesNaoEncerradosPorPeriodo, hasSize(2));
}