¿Cómo obtener un ActionContext de Struts 2 durante las pruebas de aceptación?

Estoy escribiendo pruebas de aceptación (probando el comportamiento) usando cucumber-jvm, en una aplicación con Struts 2 y Tomcat como mi Servlet Container. En algún punto de mi código, necesito recuperar al usuario de Struts 2HttpSession, creado por unHttpServletRequest.

Ya que estoy haciendo pruebas y no estoy ejecutando Tomcat, no tengo una sesión activa y me sale unNullPointerException.

Aquí está el código que necesito llamar:

public final static getActiveUser() {
    return (User) getSession().getAttribute("ACTIVE_USER");
}

Y el método getSession:

public final static HttpSession getSession() {
    final HttpServletRequest request (HttpServletRequest)ActionContext.
                          getContext().get(StrutsStatics.HTTP_REQUEST);
    return request.getSession();
}

Honestamente, no sé mucho sobre Struts 2, así que necesito un poco de ayuda. He estado mirando estopepino jvm con tomcat incrustado Ejemplo, pero estoy luchando por entender.

También he estado mirando estoStruts 2 Junit Tutorial. Lamentablemente, no cubre muy bien todas lasStrutsTestCase características y es el más simple de los casos de uso (todos considerados, un tutorial bastante inútil).

Entonces, ¿cómo puedo ejecutar mi prueba de aceptación como si el usuario estuviera usando la aplicación?

ACTUALIZAR:

Gracias a Steven Benitez por la respuesta!

Tuve que hacer dos cosas:

Simula el HttpServletRequest, como se sugiere,Simula la sesión HttpSession para obtener el atributo que quería.

Aquí está el código que he agregado a mis pruebas de pepino-jvm:

public class StepDefs {
    User user;
    HttpServletRequest request;
    HttpSession session;

    @Before
    public void prepareTests() {
        // create a user

        // mock the session using mockito
        session = Mockito.mock(HttpSession.class);
        Mockito.when(session.getAttribute("ACTIVE_USER").thenReturn(user);

        // mock the HttpServletRequest
        request = Mockito.mock(HttpServletRequest);
        Mockito.when(request.getSession()).thenReturn(session);

        // set the context
        Map<String, Object> contextMap = new HashMap<String, Object>();
        contextMap.put(StrutsStatics.HTTP_REQUEST, request);
        ActionContext.setContext(new ActionContext(contextMap));
    }

    @After
    public void destroyTests() {
        user = null;
        request = null;
        session = null;
        ActionContext.setContext(null);
    }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta