Я создал класс, который расширил CommerceItemManager и переопределил метод createCommerceItem.А теперь я хочу написать тест для джунитов и мокито для этого класса.Вот основная логика для тестового класса:
public class CustomizeCommerceItemManagerTest {
@Spy @InjectMocks CustomizeCommerceItemManager commerceItemManager;
@Before
public void setUp(){
initMocks(this);
}
@Test
public void shouldDoSomething(){
}
}
Но когда я запускаю этот класс, он выдает исключение:
java.lang.ExceptionInInitializerError at atg.nucleus.logging.ClassLoggingFactory.getFactory (ClassLoggingFactory.java:106) по адресу atg.core.i18n.LayeredResourceBundle. (LayeredResourceBundle.java:153) по адресу atg.commerce.order.CommerceItemManager. (CommerceItemMlector.or..newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
Причина: java.util.MissingResourceException: Не удается найти пакет для базового имени atg.nullus.языковой стандарт en_US на java.util.ResourceBundle.throwMissingResourceException (ResourceBundle.java:1564) на java.util.ResourceBundle.getBundleImpl (ResourceBundle.java:1387) на java.util.ResourceBundle.get8undlej.nucleus.GenericContext. (GenericContext.java:113) ... еще 46
Я обнаружил, что внутри CommerceItemManager есть параметр:
protected static ResourceBundle sResourceBundle = LayeredResourceBundle.getBundle("atg.commerce.order.OrderResources", LangLicense.getLicensedDefault());
, и я попытался использовать PorwerMock для насмешки этого параметра, но это не помогает.
@RunWith(PowerMockRunner.class)
@PrepareForTest({LayeredResourceBundle.class})
public class CustomizeCommerceItemManagerTest {
private CustomizeCommerceItemManager commerceItemManager;
@Before
public void setUp() {
mockStatic(LayeredResourceBundle.class);
when(LayeredResourceBundle.getBundle("atg.commerce.order.OrderResources", LangLicense.getLicensedDefault())).thenReturn(null);
commerceItemManager = PowerMockito.spy(new CustomizeCommerceItemManager());
}
@Test
public void shouldDoSomething() {
}
}
Может кто-нибудь дать мнепредложение