gpt4 book ai didi

spring - 使用 ServletContextListener 进行单元测试

转载 作者:行者123 更新时间:2023-12-02 02:51:04 24 4
gpt4 key购买 nike

我有一个 ServletContextListener 来初始化我的数据库。我已将其添加到我的 web.xml 中:

<listener>
<listener-class>util.MySessionListener</listener-class>
</listener>

当我启动服务器时,一切都很好。

但是当我运行 AbstractTransactionalJUnit4SpringContextTests-tests 时,它不会被调用。我能做什么?

最佳答案

这是ServletContextListener吗?或HttpSessionListener ?你的命名很困惑。

尽管如此,只需在 @Before 中运行即可:

MockServletContext mockServletContext = new MockServletContext()
new MySessionListener().contextInitialized(
new ServletContextEvent(mockServletContext)
)

哪里MockServletContext来自 Spring 。如果您的听众使用 WebApplicationContextUtils ,您需要在运行 contextInitialized() 之前添加此内容:

mockServletContext.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
yourTestApplicationContext
);

其中 yourTestApplicationContextApplicationContext 的实例,您可以简单地注入(inject)到测试用例中:

@Autowired
private ApplicationContext yourTestApplicationContext;

关于spring - 使用 ServletContextListener 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10615377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com