Я использую liferay-plugins-sdk-6.2, я создал таблицу «пациентов» и соответствующую модель и услуги с помощью Service Builder. Теперь я пытаюсь создать тест JUnit для своей логики. Я смотрел много потоков на форуме по этому поводу, так что для 6.2 я создал следующую структуру: (кстати: Я использую муравей)Тестирование модулей с помощью Liferay 6.2
-docroot
-test
-unit
-src
-integration
-src
И это та часть, которая дает мне неприятность ...
@Test
public void testValidatePatient() throws SystemException {
Patient patient = new PatientImpl();
...
}
Когда я запускаю тест (от муравьиного теста), я получаю следующее исключение:
java.lang.ExceptionInInitializerError
PatientModelImpl.<clinit>(PatientModelImpl.java:92)
ValidatorUtilTest.testValidatePatient(ValidatorUtilTest.java:29)
Caused by: java.lang.NullPointerException
at com.liferay.portal.kernel.configuration.ConfigurationFactoryUtil.getConfiguration(ConfigurationFactoryUtil.java:27)
at com.liferay.util.service.ServiceProps.<init>(ServiceProps.java:66)
at com.liferay.util.service.ServiceProps.<clinit>(ServiceProps.java:70)
И это привело меня к этому волшебному код:
public static final boolean ENTITY_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.util.service.ServiceProps.get(
"value.object.entity.cache.enabled.com.methodia.khearos.model.Patient"),
true);
Кажется, что ServiceProps не может быть правильно создан, поэтому (только для тестирования) я удалил вызовы ServiceProps.get и поместил соответствующие значения по умолчанию. После этого я снова проверил тест, и все работало как шарм.
Итак, мой вопрос в том, как правильно настроить вещи, поэтому у меня будет конфигурация? Или есть ли другой способ обхода, который не требует от меня изменения кода Service Builder?
Поместите свою тестовую папку за пределы -docroot –
Это вне docroot. Тесты папок и docroot являются братьями и сестрами. –