当前位置: 首页 > 面试题库 >

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

郝永思
2023-03-14
问题内容

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

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

我不想仅出于测试目的就将整个Web应用程序复制到我的src / test / resources文件夹中-还有其他方法可以访问它们吗?

我可以通过更改Eclipse“运行配置”以在类路径中包括此文件夹来解决此问题,但是从命令行运行测试时,该方法不起作用吗?

有人遇到过这种情况么?有已知的解决方案吗?

谢谢!


问题答案:

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

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

有关具体示例,请参阅有关集成测试Spring
MVC的博客文章。Spring手册的 “
测试”一章还对Spring中的集成测试进行了全面介绍。



 类似资料:
  • 问题内容: 我使用 m2eclipse 在Eclipse中导入Maven Java项目。 它无法识别为源目录。 以图形方式在包资源管理器中(或当我在项目属性中查看 Java-Build-Path 时), 此目录不在source文件夹列表中(while 或do)。 要访问它,我必须直接查看src /目录,然后开始展开…不太方便! 但是,如果我运行,资源将被复制到正确的目录。 (例如: 到) 问题 这

  • 问题内容: 我有一个在。 当我尝试测试通过jar文件加载此文件的类时,测试失败,因为它无法在路径()中找到该文件。我通过测试得到的路径是: 但是该文件不存在吗? 问题答案: 从文件将可在主程序运行时类路径,而无论是从文件,并会在试运行期间可在classpath。 一种检索驻留在类路径上的文件的方法是: ..的类型取决于文件的内容。您还可以将文件作为InputStream获取:

  • 在使用命令时,是否需要maven-surefire插件来运行单元测试? 我阅读了文档,知道它说: Surefire插件在构建生命周期的测试阶段用于执行应用程序的单元测试。它以两种不同的文件格式生成报告: 纯文本文件(. txt)XML文件(. xml)缺省情况下,这些文件是在${Basedir}/Target/surefire-报告中生成的。 然而,我在没有使用surefire插件的情况下运行了这

  • 我有以下服务方式: 我正试图为此方法创建以下单元测试: 我的问题是: 1.我们需要在单元测试中测试方法吗?如果是这样,我们是否应该为列表创建多条记录,然后将返回的结果与预期的筛选值进行比较? 泛型可译:

  • 业务逻辑类:测试用例类: 我尝试过清理,将testResources目录放在POM中。我不想在类路径中添加classes文件夹。请指教。

  • 我已经在Eclipse中使用新的- 配置我的项目时是否缺少任何东西? 我的pom。xml包括:

  • 我正在为我的maven项目添加一个可执行的jar测试。我已经编辑了pom文件,以使用src/main/resources中的一个主类。但是,当我尝试运行jar时,它找不到我的主类。有什么想法吗?