Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Sale un eror en los test. curso ChatGpt y programacion.

Buena tarde, quisiera saber, de este error:
esta saliendo en los metodos: mi clase validar, traida de chstgpt.

private static final LocalTime APERTURA = LocalTime.of(7, 0);
   private static final LocalTime CIERRE = LocalTime.of(19, 0);

   public void validar(DatosAgendarConsulta datos) {

      var fechaConsulta = datos.fecha();
      var dia = fechaConsulta.getDayOfWeek();
      var hora = fechaConsulta.toLocalTime();
      System.out.println("fecha consulta "+fechaConsulta);
      System.out.println("dia "+dia);
      System.out.println("hora "+hora);
      boolean esDomingo = DayOfWeek.SUNDAY.equals(dia);
      boolean antesDeApertura = hora.isBefore(APERTURA);
      boolean despuesDeCierre = hora.isAfter(CIERRE);
      if (esDomingo || antesDeApertura || despuesDeCierre) {
         throw new ValidationException("El horario de atención de la clínica es de lunes a sábado, de 07:00 a 19:00 horas");
      }
   }

metodos donde esta el problema.

@Test
   void noDebePermitirConsultaDespuesDeHorario() {
      var fecha = LocalDateTime.of(2025, 8, 6, 19, 1); // Miércoles 7:01pm
      var datos = crearDatos(fecha);
      assertThrows(ValidationException.class, () -> validador.validar(datos));
   }

y este metodo

  @Test
   void noDebePermitirConsultaSabado1901() {
      var fecha = LocalDateTime.of(2025, 8, 9, 19, 5); // Sábado 7:01pm
      var datos = crearDatos(fecha);
      assertThrows(ValidationException.class, () -> validador.validar(datos));
   }

dependencias nuevas solo coloque esta.

<dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>6.0.0-M2</version>
            <scope>test</scope>
        </dependency>

No se explico en forma clara que dependencias deben estar para manejo de Junit, con maven. Coloque esta dependencia pero sigue el error.

en consola sale.

Internal Error occurred.
org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests
at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:160)
Caused by: org.junit.platform.commons.JUnitException: MethodSelector [className = 'med.voll.api.domain.consulta.validaciones.HorarioDeFuncionamientoClinicaTest', methodName = 'noDebePermitirConsultaAntesDeHorario', methodParameterTypes = ''] resolution failed
at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:189)
at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:126)
at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:92)
18 more.
Estas son algunas líneas de los errores no las coloque todas.
Es problema de dependencias.,
agradezco sus consejos. gracias.
En conclusión lo de chatgpt muy bueno, pero a veces lo sigue por rutas que uno no quiere manejar.
Todo lo anterior fue generado por chatgpt, como nos indico la profe.

1 respuesta

Hola Rene,

Gracias por compartir tu duda. Parece que estás enfrentando un problema con la configuración de las dependencias de JUnit en tu proyecto Maven. El error que mencionas sugiere que JUnit no está pudiendo descubrir y ejecutar tus pruebas correctamente.

Aquí hay algunas cosas que podrías verificar para intentar resolver el problema:

  1. Versión de JUnit: La versión que estás usando (6.0.0-M2) parece ser una versión de desarrollo (milestone), lo cual podría no ser estable. Te recomendaría usar una versión estable, como la 5.8.2, que es ampliamente utilizada. Puedes cambiar tu dependencia a algo como:
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.8.2</version>
    <scope>test</scope>
</dependency>
  1. Plugin de Surefire: Asegúrate de tener configurado el plugin de Maven Surefire, que es el encargado de ejecutar los tests. Aquí tienes un ejemplo de cómo configurarlo en tu pom.xml:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
        </plugin>
    </plugins>
</build>
  1. Verifica el JDK: Asegúrate de que el JDK que estás usando es compatible con la versión de JUnit que estás utilizando. JUnit 5 requiere al menos Java 8.

  2. Limpieza y reconstrucción: Después de realizar cambios en el pom.xml, ejecuta mvn clean install para limpiar y reconstruir el proyecto. Esto puede ayudar a resolver problemas de caché.

Espero que estas sugerencias te sean de ayuda para resolver el problema con tus tests. ¡Bons estudios!