Мне нужно написать тест jUnit для довольно сложного приложения, которое работает в Tomcat.
Я написал класс, который создает мой контекст Spring.
private static ApplicationContext
springContext = null;
springContext = new ClassPathXmlApplicationContext(
new String[] {"beans"....});
В приложении есть звонок:
public class myClass implements ServletContextAware {
.... final String folder = **servletContext.getRealPath**("/example"); ...
}
, который ломает все, потому что ServletContext
равен нулю.
Я начал строить фиктивный объект:
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);
}
Есть ли простой способ внедрить ServletContext
или запустить Tomcat с дескриптором развертывания во время выполнения теста jUnit?
Я использую: Spring, Maven, Tomcat 6 и EasyMock для фиктивных объектов.