Struts 2 JUnit плагин + Hibernate
После этого я тестирую свое веб-приложение Struts 2 с помощью плагина JUnit для Struts 2.
В моем веб-приложении я использую fullHibernateCore-plugin-1.4
интегрировать функциональность Hibernate.
Когда я тестирую действие, которое делает что-то в спящем режиме, оно возвращает NullPointerException
, Из того, что я понял, поскольку плагин Struts 2 JUnit использует поддельный контейнер для выполнения действий, HibernateSession
не увольняйся Как я могу решить эту проблему?
Это тестовый пример:
public class testRegisterAction extends StrutsTestCase {
public void testGetActionProxy() throws Exception {
//set parameters before calling getActionProxy
request.setParameter("user.name", "TestName");
ActionProxy proxy = getActionProxy("/userRegister.action");
assertNotNull(proxy);
RegistrationAction action = (RegistrationAction) proxy.getAction();
assertNotNull(action);
}
РЕШИТЬ
Это была не ошибка Hibernate, а ошибка, связанная с плагином Struts Tiles. Я использовал плитки, и я не устанавливал proxy.setExecuteResult(false)
, поэтому JUnit пытался выполнить все вещи jsp/tile (после возврата действия), выдавая ошибку. В трассировке стека также были ошибки Hibernate, и поэтому я подумал (ошибочно), что ошибка связана с Hibernate.
Я решил настройку proxy.setExecuteResult(false)
,
2 ответа
РЕШИТЬ
Это была не ошибка Hibernate, а ошибка, связанная с плагином Struts Tiles. Я использовал плитки, и я не устанавливал proxy.setExecuteResult(false)
, поэтому JUnit пытался выполнить все вещи jsp/tile (после возврата действия), выдавая ошибку. В трассировке стека также были ошибки Hibernate, и поэтому я подумал (ошибочно), что ошибка связана с Hibernate.
Я решил настройку proxy.setExecuteResult(false)
,
Вы можете решить эту проблему путем обновления до версии 2.2.2, общедоступной на сайте.
С версией используемой вами транзакции перехватчик не может поместить сеанс в стек.