2013-01-16 130 views
2

我知道这个问题有几个问题,但我仍然无法完成工作。 我有一个弹簧应用程序,我正在尝试编写集成测试。 我尝试使用xml文件(或多或少与我用于应用程序的XML文件相同)设置应用程序上下文。 在出现的问题有以下几点:弹簧综合测试

  1. 配置没有被加载,我已经收到了这样的错误:“预计一个bean,但发现0”。

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

  3. 现在,它无法加载带有此错误的应用程序上下文:找不到匹配依赖关系的[javax.servlet.http.HttpServletRequest]类型的bean。 (在我的配置文件中我有mvc:annotation-driven />)

  4. 我跟着这个例子http://www.scarba05.co.uk/blog/2010/07/more-on-integration-testing-of-spring%E2%80%99s-mvc-annotation-mapppings-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的新手,但至少我已经搜索并阅读了很多。你能否指点我一个很好的教程或一些示例项目(春季除外),以便我可以解决我的问题。

非常感谢您花时间阅读我的问题!

回答

3

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

然而,这并不包括控制器测试。对于这些,你提到的帖子现已被弹簧MVC测试项目,该项目现已列入春季3.2.x中

这里不推荐使用是Spring MVC的测试框架一些阅读:

+0

嘿,谢谢你的回答!我会研究文档。我在应用程序中只保留了我需要的部分。我看到了spring-test-mvc项目和样本,但不幸的是我必须使用spring 3.1.2。在spring-test-mvc中,他们使用了从3.2.x开始的MockMvc。而且,在spring-mvc-showcase中,他们正在重用servlet-context来设置应用程序上下文(https://github.com/SpringSource/spring-mvc-showcase/blob/master/src/test/java/org/springframework /samples/mvc/AbstractContextControllerTests.java)。 – meniari