gpt4 book ai didi

java - Maven 中的单元测试需要访问 src/main/webapp 目录

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:19 24 4
gpt4 key购买 nike

我正在尝试对我在 Maven/Eclipse 中开发的 Web 应用程序进行单元测试。这是一个 Spring MVC webapp,我需要一些单元测试来测试我的模型 Controller 。

为此,我需要使用我的 webapp 配置 .xml 文件来注入(inject) Controller ,但是,我的所有配置(以及配置引用的其他相关文件)都在 src/main/webapp 目录中(根据 Maven约定)- 这里有很多文件我需要在我的测试中引用,但是在运行测试时它们不可用,因为它们不在类路径中(Maven 似乎只添加了 src/main/java,src/test/java, src/main/resources, src/test/resources 到类路径但不是 src/main/webapps)

我不想为了测试而将我的整个 webapp 复制到我的 src/test/resources 文件夹中 - 有没有其他方法可以访问它们?

我可以通过更改 Eclipse 的“运行配置”以将此文件夹包含在类路径中来解决这个问题,但是当从命令行运行测试时这将不起作用?

有没有人遇到过这个?有已知的解决方案吗?

谢谢!

最佳答案

一般来说,您应该使用模拟(例如 EasyMock 或 jMock)来处理 Controller 的单元测试;单元测试应该测试与系统其余部分隔离的组件。在 Spring 3 中,您可以将您的 Controller 定义为带有注释的 POJO,然后简单地测试 Controller 而无需与 Spring 进行任何交互。

如果你想做更多的集成级测试,那么你可以将配置文件的公共(public)部分放在 src/main/resources 中,这样它们就可以在类路径中访问。然后在 src/test/resources 中使用特定于测试的配置进行测试。该文件可以将这些文件与您需要的任何内容一起导入,或者您可以使用 @ContextConfiguration 注释您的测试用例以指定组装上下文所需的多个文件。

有关具体示例,请参阅此 blog post on integration testing Spring MVC . Testing chapter of the Spring manual还对 Spring 中的集成测试进行了不错的概述。

关于java - Maven 中的单元测试需要访问 src/main/webapp 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699181/

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