通过WebApplicationContext模拟HttpServlet中的属性

时间:2014-03-18 13:28:06

标签: java spring unit-testing java-ee servlets

假设我有HttpServlet属性(MyAttribute)。在servlet初始化之后,我想用mock替换后者。

我在覆盖的MyServlet.init()方法中实例化我的属性,如下所示:

WebApplicationContext wac = getWebApplicationContext();
this.myAttribute = (MyAttribute) wac.getBean("myAttribute");

现在,在我的单元测试中,我得到的只是一个WebApplicationContext对象。 1

我计划像这样嘲笑这个属性:

MyServlet myServlet = (MyServlet) WebApplicationContext.getServletContext().getServlet("myServlet");
myServlet.setMyAttribute(EasyMock.createStrictMock(MyAttribute.class));

不幸的是,ServletContext().getServlet()方法已弃用,目前始终返回null,并将在以后的版本中永久删除。因此我的问题是:

如何通过WebApplicationContext模拟HttpServlet的属性?

1:这是因为我的单元测试在自己的线程中启动一个Tomcat'ish Server实例,在我的应用程序启动并运行后返回给我的WebApplicationContext。

0 个答案:

没有答案