Wie kann ich Spritzen ServletContext im Frühjahr unit-test?

Schreiben brauche ich einen jUnit test für eine ziemlich komplexe Anwendung, die läuft in einem Tomcat.

Schrieb ich eine Klasse, die baut meine Feder Kontext.

private static ApplicationContext
springContext = null;

springContext = new ClassPathXmlApplicationContext(
                     new String[] {"beans"....});

In der Anwendung, es ist ein Aufruf:

public class myClass implements ServletContextAware { 

.... final String folder = **servletContext.getRealPath**("/example"); ...
}

alles ruiniert, weil die ServletContext null ist.

Habe ich angefangen zu bauen ein mock-Objekt:

static ServletConfig servletConfigMock = createMock(ServletConfig.class);
static ServletContext servletContextMock = createMock(ServletContext.class);

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        expect(servletConfigMock.getServletContext())
                 .andReturn(servletContextMock).anyTimes();

        expect(servletContextMock.getRealPath("/example"))
                 .andReturn("...fulllpath").anyTimes();
        replay(servletConfigMock);
        replay(servletContextMock);
    }

Gibt es eine einfache Methode, um zu injizieren, die ServletContext oder starten Sie die Tomcat mit einem deployment-Deskriptor an die Laufzeit des jUnit-test?

Ich bin mit: Spring, Maven, Tomcat 6 und EasyMock für die mock-Objekte.

InformationsquelleAutor M.R. | 2010-03-24
Schreibe einen Kommentar