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的测试类。
我得到的例外如下:
java.lang.NullPointerException at com.liferay.portal.service.CompanyLocalServiceUtil.getCompanyByWebId(CompanyLocalServiceUtil.java:498)
以下方法customService.CreateCategory();调用Lifery util方法,如CompanyLocalServiceUtil.getCompanyByWebId等。
请有人对此有所了解。我真的很感激任何帮助。
我是否需要在spring配置文件中提供Liferay DS信息? OR
有什么方法可以存根数据吗?
我试图在其中一个Liferay实体类上测试ADD操作 -
MBCategoryLocalServiceUtil.addCategory(...)
答案 0 :(得分:1)
您必须在CompanyLocalService
中注入/模拟CompanyLocalServiceUtil
课程。 Liferay的做法是:
CompanyLocalService service = ..... // mock;
new CompanyLocalServiceUtil().setService(service);
setService是一个实例方法,但是为静态字段赋值。不要问我为什么以这种方式实施和设计。