классов Моих Struts2 Действия использовать следующий код, чтобы успешно доступ к сеансуНе удается получить сеанс для тестирования JUnit
ActionContext.getContext().getSession().clear();
Однако, когда я пытаюсь использовать JUnit, чтобы проверить мои классы действий я получаю исключение NullPointer ,
я просматривал некоторые замечания, размещенные другими на StackOverflow и использую следующий код:
HttpServletRequest request;
HttpSession session;
@Before
public void setUp() throws Exception {
request = Mockito.mock(HttpServletRequest.class);
request.setAttribute("beanList", beanList);
request = Mockito.mock(HttpServletRequest.class);
Mockito.when(request.getSession()).thenReturn(session);
Map<String, Object> contextMap = new HashMap<String, Object>();
contextMap.put(StrutsStatics.HTTP_REQUEST, request);
ActionContext.setContext(new ActionContext(contextMap));
}
Тем не менее, по-прежнему выдает ошибку пустого указателя. Система может успешно найти контекст, но когда он пытается получить сеанс, он умирает от меня. Я также пытаюсь несколько разных способов достичь той же цели безрезультатно. Любая идея, что я делаю неправильно?
Mockito отлично, но для этого случая он не нужен. Сессия - это просто карта. Подробнее см. Мой ответ ниже. Кроме того, ваш NPE, вероятно, связан с тем, что вы фактически не устанавливаете карту сеанса в своем ActionContext нигде. Вы добавляете только HttpServletRequest. –