了解使用 JUnit 进行容器内测试如何优于模拟对象进行集成测试,以及如何使用 Oracle JDeveloper 来应用该技术。

单元测试作为一种确保代码质量的技术现如今非常流行。由于有了 JUnit 框架,因此为简单的 Java 应用程序编写单元测试就变得容易多。然而,对于真实世界的企业应用程序来说,因为这些应用程序需要对象在容器内运行,所以常用的 JUnit                                         testXXX()

在本文中,为了让 JUnit 测试访问在 J2EE 容器内运行的对象,我将介绍容器内测试的应用。此处使用的示例应用程序是一个基于 Struts 的 Web 应用程序,这种应用程序在企业应用程序中相当普遍,但是所讨论的技术却与所有 J2EE 项目都相关。

 

 

模拟对象                                     模拟真实世界中的 J2EE 对象。为了在一个没有容器运行的 JUnit 测试中使用这些对象,需要一个框架(如 MockObjects,http://www.mockobjects.com)提供某些 J2EE API 的特殊实现。例如,它提供“MockHttpServletRequest”对象。                                    

容器内测试

本文将重点讨论第二中方法,因为使用此方法可以轻松地建立和执行“现实生活”测试。容器内测试的代码编写工作较少,并且会增加一层在实践中非常有用的集成测试。从本作者的观点来看,当前的模拟对象框架还有待成熟且文档欠缺。容器内测试的缺点则在于,由于需要在 J2EE 服务器上部署应用程序,因此该种测试运行速度较慢;不过因为 OC4J 的启动速度相当快,所以对它来说应该不是什么问题。