public class CustomServiceImplTest extends TestCase{
ApplicationContext ac;
private BeanLocator mockBeanLocator;
@Test
public void testCreateCategory() throws Exception {
CustomService customService = (CustomService) ac.getBean("customService");
customService.CreateCategory();
}
@Before
public void setUp()
{
mockBeanLocator = Mockito.mock(BeanLocator.class);
PortalBeanLocatorUtil.setBeanLocator(mockBeanLocator);
CompanyLocalServiceUtil mockCompanyLocalService = Mockito.mock(CompanyLocalServiceUtil.class);
ac = CustomSpringUtils.loadApplicationContext(new String[] { ""/applicationContext-Services.xml" });
}
}
我正在使用基本的JUnit 4並創建上面的測試類來擴展TestCase。Junit測試 - com.liferay.portal.kernel.bean.BeanLocatorException:BeanLocator尚未設置
我正的例外如下:
java.lang.NullPointerException at com.liferay.portal.service.CompanyLocalServiceUtil.getCompanyByWebId(CompanyLocalServiceUtil.java:498)
以下方法customService.CreateCategory();已經調用了Lifery util方法,如CompanyLocalServiceUtil.getCompanyByWebId等。
請任何人都對此有所瞭解。我非常感謝任何幫助。
我是否需要在spring配置文件中提供Liferay DS信息?或
有沒有什麼辦法可以將數據剔除?
我想在Liferay的實體類的一個測試ADD操作 -
MBCategoryLocalServiceUtil.addCategory(...)
您可以提供CompanyLocalServiceUtil的源代碼嗎?我找不到超過300行的任何源代碼。乾杯 –
public static CompanyLocalService getService(){ if(_service == null){ _service =(CompanyLocalService)PortalBeanLocatorUtil.locate(CompanyLocalService.class.getName()); ReferenceRegistry.registerReference(CompanyLocalServiceUtil.class, 「_service」); MethodCache.remove(CompanyLocalService.class); } return _service; } private static CompanyLocalService _service; //我沒有提供setService方法,因爲它是空間限制。 – Sri