(一)对 Java 和 EJB 应用程序进行单元测试

发表于:2009-04-07来源:作者:点击数: 标签:javaJAVAJava单元EJB
此篇文章是以 JUnit 和 Junit EE 的概述开始的,然后展示了 JUnit 和 JUnitEE 在 Rational Application Developer IDE 中的用法,即如何对一个简单的 Java 应用软件和一个无状态的 session bean 进行单 元测试 。首先,我们介绍了 JUnit 和 JUnitEE 结构的简
 此篇文章是以 JUnit JunitEE 的概述开始的,然后展示了 JUnit 和 JUnitEE 在 Rational Application Developer IDE 中的用法,即如何对一个简单的 Java 应用软件和一个无状态的 session bean 进行单元测试。首先,我们介绍了 JUnit 和 JUnitEE 结构的简单概述,紧接着我们介绍了如何在 JUnit 和 JUnitEE 测试框架开发,配置以及安装单元测试。最后,我们阐述了如何在应用软件服务器环境中布署和执行单元测试。

JUnit 测试框架

        JUnit 现在是基于 Java 应用软件单元测试的非官方标准。尽管 Junit.org Web 网站提供了更多有压缩力的信息和指南(请参见 参考资源),这个部分还是向您提供了 JUnit 测试框架的总的观点。包含 JUnit 的装配 APIs 的主要目的是使 Java 单元测试用例的编写更快更简单。最低限度,一个 JUnit 测试用例有一个如 列表 1代码中所示的常用结构。


列表 1. JUnit 常用结构
                
1. Import junit.framework.TestCase;
2. 
3. Public class AddJavaTest extends TestCase {
4. 
5. protected void setUp() throws Exception
6.     {
7.      // create some object
8.     }
9. protected void tearDown() throws Exception
10. {
11.  //release any recourse that was created in      
12.   setup()
13. }
14.      public AddJavaTest (String name){
15.            super (name);
16. 
17.      public void testSimpleAddition (){
18.             assertTrue (expect == actual);
19.    }
}
 


        如 列表 1 第三行所示,所有的 Java™ 测试用例类都必须扩展junit.framework.TestCase ,它是 JUnit 的核心类。在第五行中,TestCase.setUp() 被重载,从而对测试下的对象进行初始化或者实例化。相反,在第九行中, TestCase.tearDown() 被重载,是释放任何定位资源的。在第十四行中,为了在日志中显示这个测试用例的名称,一个测试用例必须有一个可以将自变量传递到它的父类 (TestCase) 的专门的串参数构造器。

        测试用例必须声明为 public void ,并且不带行参。此外,合适的是测试方法名称都有一个 "test" 前缀,这样测试运行人员就可以自动地执行所有的方法。最后,在第十八行的断言语句中,决定了这个测试用例的成功与失败。这个方法 assert在这个特殊的测试情景下,将期望值与实际值进行了对比。您可以利用 fail() 方法强迫这个测试用例失败,例如您想要迫使一个操作暂停。JUnit 提供了一个额外的决定测试用例成功或者失败的机制。表格 1 显示了不同 assert 和 fail 方法签名的范例。


     

原文转自:http://www.ltesting.net