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, общедоступной на сайте.

С версией используемой вами транзакции перехватчик не может поместить сеанс в стек.

Другие вопросы по тегам