0

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

Web 应用程序的配置不使用 Springweb.xml的. 当我只是在我的(Tomcat)服务器上运行应用程序时,这很好用。applicationContext.xmlWebApplicationInitializer

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

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

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

4

1 回答 1

0

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

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

于 2015-09-16T11:05:18.110 回答