spring - xUnit 测试端到端的 Spring Web 应用程序

标签 spring testing web-applications junit

为 Spring JSP Web 应用程序处理以下(集成/单元)测试场景的最佳方法是什么:

  • 使用 JUnitRunner 运行
  • 访问 Spring 上下文(@Inject beans into the test)
  • 向轻量级 Web 服务器发送请求,该服务器从呈现整个 html(包括 JSP)的测试内部开始
  • 自动回滚交易
  • 没有浏览器(Selenium 已过时)
  • 真正运行的 servlet 容器(没有 MockServlet)来测试 JSP(spring-text-mvc 已经过时)

目标:

  • 使用 maven 构建周期运行
  • 隔离测试 - 每个测试都可以将所有 beans 设置为所需状态
  • 检查 JSP 页面的 html 输出
  • 检查bean状态/数据库状态

有这方面的框架吗?我可以组合框架吗?也许我需要设置自己的服务器并启动它,然后对本地主机运行实际请求。但是我如何才能影响服务器的上下文并对其运行回滚?

感谢您的指点、链接和想法。


编辑

我刚刚读到有关使用嵌入式码头测试 spring 应用程序的信息。不确定这是否是正确的方法。我认为问题在于部署的应用程序和我的测试没有相同的上下文。将进一步调查,欢迎对此提出任何想法。


edit2

找到另一个听起来很有前途的项目:JWebUnit .将尝试这个并根据反馈进行更新。很想听听有关使用该框架解决与我类似的问题的任何经验。

最佳答案

我还没有使用过它,但这对于 Spring-MVC 测试来说非常有前途 - https://github.com/SpringSource/spring-test-mvc .它满足1(使用JUnitRunner运行)、2(访问Spring Context)、4(事务回滚支持)、5(无浏览器)。 3,无需启动轻量级 Web 服务器,它可以通过编程方式连接整个 Spring MVC 基础架构并端到端地对其进行测试。

关于spring - xUnit 测试端到端的 Spring Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049985/

相关文章:

android - 如何使用 Espresso 测试记录器为以编程方式创建的 View 创建 UI 测试

java - 我可以在 Spring Security 中有多个配置来保护 Web 应用程序和 Rest API 吗?

java - Spring和Spring MVC框架有什么区别

java - MVC Web 应用程序如何在 Java 中工作?

android - Espresso 测试 - Android

ruby-on-rails - 使用 rspec 测试 Rails STI 子类

java - 在 web-app 目录中创建嵌入式 hsqldb

java - 如何分析负载下的性能?

java - Spring 3.0.5 <mvc :interceptor> not working

java - Neo4j 查询在浏览器中运行良好,但在 Spring Data Neo4j 中运行不佳