Arquillian,Spring WebApplicationInitializer,嵌入式Tomcat

时间:2015-09-15 12:57:04

标签: spring testing jboss-arquillian spring-web

我想为我的Web应用程序的REST资源编写一个单元(组件)测试。此测试应针对公开的REST接口,并通过发出请求和检查响应来测试其行为。

通过使用Spring的web.xml,可以在不使用applicationContext.xmlWebApplicationInitializer的情况下配置Web应用程序。当我在我的(Tomcat)服务器上运行应用程序时,这很好用。

启动Arquillian测试时,ShrinkWrap存档部署在嵌入式Tomcat服务器上。由于嵌入式服务器使用我的Web应用程序的类路径运行,它还会找到我的WebApplicationInitializer类。这是有问题的,因为它会加载许多依赖项,并且应该只为测试激活。

如何在测试中停用我的WebApplicationInitializer(并提供替代实施)?

使用XML配置文件时,这对应于隐藏真实配置文件并使用测试中使用的特定(空?)配置。

1 个答案:

答案 0 :(得分:0)

我通过使用我在Arquillian的WebApplicationInitializer方法中设置的静态字段禁用我的@Deployment实例来解决此问题。

您可能还想查看metadata-complete导致Tomcat不调用委托给WebApplicationInitializer实例的Spring部分。