0
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 信息吗?或者

有什么办法可以把数据存根吗??
我正在尝试在 Liferay 实体类之一上测试 ADD 操作-

MBCategoryLocalServiceUtil.addCategory(...)
4

1 回答 1

1

您必须CompanyLocalServiceCompanyLocalServiceUtil. Liferay 的做法是:

CompanyLocalService service = ..... // mock;
new CompanyLocalServiceUtil().setService(service);

setService 是一个实例方法,但为静态字段赋值。不要问我为什么以这种方式实现和设计它。

于 2013-10-09T08:08:26.820 回答