es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Prueba buscando la clase de enumeración dentro de src/main en lugar de src/test.

Estoy un poco confundido/a acerca de la visibilidad de las clases entre los directorios src/test y src/main. Tengo un enum creado en ambos paquetes, pero con un caso adicional cuando está en la carpeta de pruebas para permitirme probar un escenario negativo. Sin embargo, IntelliJ me da un error como si estuviera buscando ese caso adicional en el enum de la carpeta principal (aunque la prueba se compila y pasa). En la misma nota, cuando inspecciono los usos del enum dentro de la carpeta principal, también muestra el directorio de pruebas. No estoy seguro de cómo especificar que quiero usar uno sobre el otro, ya que imaginaba que el de src/test tendría prioridad sobre src/main para el código bajo ese mismo directorio src/test.

Gracias.

ACTUALIZACIÓN

Cambiar el nombre del enum para tener nombres diferentes no sería aceptado por el método de llamada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En Java, las clases bajo los directorios src/test y src/main tienen distintos alcances. Las clases bajo el directorio src/main son consideradas código de la aplicación, mientras que las clases bajo el directorio src/test son consideradas código de prueba.

    En tu caso, tienes un enum bajo los directorios src/main y src/test. El error que estás viendo en IntelliJ se debe a que el código bajo src/main hace referencia al enum que no tiene el caso adicional para pruebas negativas.

    Para resolver este error, puedes utilizar el nombre completamente calificado del enum al hacer referencia a él. Por ejemplo, en lugar de usar StatusEnum, utiliza com.example.StatusEnum, donde com.example es el prefijo de tu paquete. Esto asegurará que se utilice el enum correcto.

    Alternativamente, puedes dividir el enum en dos clases separadas: una para el código de la aplicación y otra para el código de prueba. Esto evitará cualquier confusión y asegurará que siempre se utilice el enum correcto.

    Sin embargo, si cambiar el nombre del enum no es una opción, utilizar el nombre completamente calificado es la solución recomendada.

Comments are closed.