Avalados por :

Problemas al ejecutar método de prueba unitaria: Solución creación ProductModel

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Hola,

Tengo algunos problemas para ejecutar mi propio método de prueba unitaria... Creo que el problema está en la creación del ProductModel, pero no estoy seguro...

El mensaje de error:

 java.lang.ExceptionInInitializerError
     at de.hybris.platform.servicelayer.model.DefaultNewModelContextFactory.getTenantId(DefaultNewModelContextFactory.java:48)
     at de.hybris.platform.servicelayer.model.DefaultNewModelContextFactory.createNewBuilder(DefaultNewModelContextFactory.java:39)
     at de.hybris.platform.servicelayer.model.DefaultNewModelContextFactory.createNew(DefaultNewModelContextFactory.java:30)
     at de.hybris.platform.servicelayer.model.AbstractItemModel.<init>(AbstractItemModel.java:65)
     at de.hybris.platform.core.model.ItemModel.<init>(ItemModel.java:76)
     at de.hybris.platform.core.model.product.ProductModel.<init>(ProductModel.java:675)
     at com.unic.hybris.interdiscount.b2b.facades.impl.DefaultIDB2BProductFacadeTest.testGetProduct(DefaultIDB2BProductFacadeTest.java:72)
     ...
 Caused by: de.hybris.bootstrap.config.BootstrapConfigException: No se puede determinar platformhome
     at de.hybris.bootstrap.config.ConfigUtil.getPlatformHome(ConfigUtil.java:136)
     ...
 Caused by: de.hybris.bootstrap.config.BootstrapConfigException: No se puede determinar la ruta al archivo core-items.xml
     at de.hybris.bootstrap    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

¡Hola Raghavendra!

¡Muchas gracias por tu respuesta! He creado un modelo de prueba del ProductModel y funciona. Pero no entiendo por qué no utilizan un modelo de prueba en los ensayos... ¿Hay alguna diferencia entre un modelo hecho a mano y el ProductModel?

Enlace al ensayo:

https://wiki.hybris.com/display/tr52/Trail+~+Testing+the+Facades

Saludos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

private ProductModel getProductModel(){

  final ItemModelInternalContext context = ItemContextBuilder      .createMockContextBuilder(CustomerModel.class, PK.NULL_PK, Locale.ENGLISH, Collections.emptyMap())      .build();  final ProductModel productModel = new ProductModel(context);  return  productModel;}
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Hola Dominik!

Creo que se debe solo a tu clase de prueba. No encuentro la anotación @unittest en la parte superior de tu clase, lo cual ayuda a Hybris a identificar esa clase como una clase de prueba unitaria.

Otro punto es que al escribir la clase de prueba unitaria, no es necesario instanciar la clase de modelo, puedes usar el framework Mockito como se muestra en el siguiente código. Por favor, inténtalo y verifica.

 ProductModel  productModel = Mockito.mock(ProductModel .class);
 Mockito.when(productModel .getCode()).thenReturn("TEST");

Creo que el problema radica en que al instanciar el modelo en la clase de prueba, busca en la ruta de recursos, lo cual no estará disponible para casos de prueba unitaria, por lo que utiliza el framework Mockito y debería funcionar.

Saludos,

Raghavendra.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¿Has inicializado y activado el inquilino de jUnit en el hAC?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?