2

我知道对此有几个问题..但我仍然无法让它发挥作用。我有一个 spring 应用程序,我正在尝试为其编写集成测试。我尝试使用 xml 文件设置应用程序上下文(或多或少与我用于应用程序的 xml 文件相同)。出现的问题如下:

  1. 配置未加载,我收到如下错误:“预期为单个 bean,但发现为 0。”

  2. 我已经指定了正确的路径,然后它开始抱怨在类路径中找不到资源。我已经复制了文件夹 test/resources 中缺少的文件。

  3. 现在,它无法加载应用程序上下文并出现以下错误:No matching bean of type [javax.servlet.http.HttpServletRequest] found for dependency。(在我的配置文件中,我有 mvc:annotation-driven />)

  4. 我已经按照这个例子http://www.scarba05.co.uk/blog/2010/07/more-on-integration-testing-of-spring%E2%80%99s-mvc-annotation-mappings-for-controllers /进行我的集成测试。不过,当我拨打电话 handlerAdapter.handle(request, response, controller); 我收到 ClassCastException,因为我的控制器不是 HandlerAdapter 的实例。我几乎遵循与此处发现的错误路径相同的错误路径:http: //forum.springsource.org/showthread.php?131196-Spring-3-1-2-Controller-annotated-Controllers-JUnit-test-fail

是的,我是 Spring 新手,但至少我已经搜索和阅读了很多。您能否指点我一个好的教程或一些示例项目(除了春季项目),这样我就可以解决我的问题。

提前感谢您花时间阅读我的问题!

4

1 回答 1

3

我写了一篇关于我认为覆盖 Spring 应用程序上下文进行测试的最佳方法的博客文章。基本上,您不应该复制您的主要应用程序上下文 xml 文件进行测试,因为这会导致重复,而只需覆盖您需要的部分:

但是,这不包括控制器测试。对于那些,您提到的帖子现在已被 spring-mvc-test 项目弃用,该项目现在包含在 spring 3.2.x 中

以下是有关 Spring MVC 测试框架的一些读物:

于 2013-01-16T23:57:58.080 回答