wut*_*aer 2 spring unit-testing servlets listener
我有一个ServletContextListener初始化我的数据库.我在我的web.xml中添加它:
<listener>
<listener-class>util.MySessionListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
当我启动服务器一切都很好.
但是当我运行我的AbstractTransactionalJUnit4SpringContextTests-tests时,它不会被调用.我能做什么?
Tom*_*icz 10
是这个ServletContextListener
还是HttpSessionListener
?你的命名令人困惑.
然而,只需运行@Before
:
MockServletContext mockServletContext = new MockServletContext()
new MySessionListener().contextInitialized(
new ServletContextEvent(mockServletContext)
)
Run Code Online (Sandbox Code Playgroud)
当MockServletContext
来自春天.如果您的侦听器使用WebApplicationContextUtils
,则需要在运行之前添加contextInitialized()
:
mockServletContext.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
yourTestApplicationContext
);
Run Code Online (Sandbox Code Playgroud)
哪里yourTestApplicationContext
是一个实例ApplicationContext
,你可以简单地在你的测试用例注入:
@Autowired
private ApplicationContext yourTestApplicationContext;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3490 次 |
最近记录: |