Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

453
Visualizações
Aserciones JUnit dentro de la secuencia de Java 8

Digamos que tengo tres objetos que guardo en la base de datos y configuro la ID generada por la base de datos. No sé el orden de los objetos devueltos por el método saveToDb . Pero quiero hacer una prueba conjunta de que esos ID generados están ahí. ¿Cómo hago eso dentro de la corriente? Quiero hacer algo como esto:

 List<MyObject> myObjects = getObjects(); numRecords = saveToDb(myObjects); // numRecords=3 List<Integer> intArray = Arrays.asList(1, 2, 3); intArray.stream() .forEach(it -> myObjects.stream() .filter(it2 -> it2.getId().equals(it)) .????

Pero no estoy seguro de dónde iría mi assertEquals() en una declaración como esta. ¿O mi enfoque es incorrecto? Sé que me vendría bien un bucle for simple, pero me gusta la elegancia de los flujos. Además, ¿hay alguna manera de crear dinámicamente el intArray, en caso de que tenga más de 3 myObjects?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Parece (si entendí correctamente), qué tal algo como esto:

 boolean result = Arrays.asList(1, 2, 3).stream() .allMatch(i -> objects .stream() .map(MyObject::getId) .filter(j -> j == i).findAny().isPresent()); Assert.assertTrue(result);
about 4 years ago · Santiago Trujillo Relatório

0

Entonces, ¿básicamente desea verificar si a una instancia de MyObject se le asignó una ID? ¿Tiene alguna importancia la igualdad con los ID en la matriz?

Que no:

 List<MyObject> objects = getObjects(); saveToDb(objects); objects.stream().map(MyObject::getId).forEach(Assert::assertNotNull);

Suponiendo que haya un método "getId" en MyObject, por supuesto.

about 4 years ago · Santiago Trujillo Relatório

0

Solo un pequeño complemento para su pregunta adicional:

Además, ¿hay alguna manera de crear dinámicamente el intArray, en caso de que tenga más de 3 myObjects?

Sí, puede usar IntStream para crear una transmisión basada en el tamaño de sus objetos como:

 IntStream.rangeClosed(1, objects.size()) // both start and end inclusive

y también hay un método IntStream.range(int start, int end) cuyo end es exclusivo.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda