谈谈单元测试之(二):测试工具 JUnit 3

转载自:http://blog.csdn.net/happylee6688/article/details/38059833



这篇文章的主题,主要是介绍一下 JUnit 3,虽然 JUnit 3 已经不推荐使用了,但它也曾是风靡一时。这里旨在讨论一下 JUnit 3 的使用,以及它的内部构造,就当是为下一篇文章介绍 JUnit 4 做铺垫吧。之前已经把单元测试的重要性都讲出来了,这里就不再赘述了,直接进入正题。


介绍


JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。JUnit 测试是程序员测试,即所谓白盒测试。它是一个 Java 语言的测试框架,多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。


特性

  • 用于测试期望结果的断言(Assertion)
  • 用于共享共同测试数据的测试工具
  • 用于方便的组织和运行测试的测试套件
  • 图形和文本的测试运行器

使用


下载



加入项目

  • 把压缩包中的 junit3.8.1.jar 文件,加入到项目的 classpath 中。


基本流程

  • 写测试类并继承 TestCase 类
  • 写测试方法 testXXX()
  • 写测试套件类,将 test case 加入到 test suite
  • 运行JUnit Test 进行测试

演示代码


[java]  view plain  copy
  1. <span style="font-family:Microsoft YaHei;">package com.tgb.test;  
  2.   
  3. import junit.framework.Assert;  
  4. import junit.framework.Test;  
  5. import junit.framework.TestCase;  
  6. import junit.framework.TestSuite;  
  7.   
  8. // 1. 继承 TestCase 类  
  9. public class CalculatorTest extends TestCase {  
  10.     // 2. 测试方法必须以 test 开头  
  11.     public void testAdd() {  
  12.         int result = new Calculator().add(12);  
  13.         Assert.assertEquals(3, result);  
  14.     }  
  15.       
  16.     // 3. 将 testcase 加入 testsuite,可以同时测试多个用例  
  17.     public static Test suite() {  
  18.         return new TestSuite(CalculatorTest.class);  
  19.     }  
  20. }</span>  


剖析概念

  • TestCase(测试用例)
当一个类继承 JUnit 的 TestCase 类,即成为一个测试类,而且,测试类中的方法必须以 test 开头,比如:testAdd() 等。

  • TestSuite(测试套件)
TestSuite 是一组测试,目的在于将相关的测试用例归入一组。当执行一个 Test Suite 时,就会执行组内所有的测试方法,这就避免了繁琐的测试步骤。当然,如果没有为 test case 写 test suite 的话,系统会默认为每个 test case 生成一个 test suite。

  • Assert(断言)
Assert 用于检查条件是否成立,当条件成立则 Assert 方法通过,否则会抛出异常。例如,Assert.assertEquals(3, result); 判断 result 是否跟期望的3想等,如果想等则通过,否则测试失败。

主要有如下几个断言方法:

assertTrue/False():判断一个条件是 true 还是 false。

fail():失败,可以有消息,也可以没有消息。

assertEquals():判断是否想等,可以指定输出错误信息。注意不同数据类型所使用的 assertEquals 方法参数有所不同。

assertNotNull/Null():判断一个对象是否为空。

assertSame/NotSame():判断两个对象是否指向同一个对象。

failNotSame/failNotEquals():当不指向同一个内存地址或者不相等的时候,输出错误信息。错误信息为指定的格式。

  • setUp
每次测试方法执行之前,都会执行 setUp 方法,此方法用于进行一些固定的准备工作,比如,实例化对象,打开网络连接等。

  • tearDown
每次测试方法执行之后,都会执行 tearDown 方法,此方法用于进行一些固定的善后工作,比如,关闭网络连接等。


结束语


JUnit 3 就介绍到这,可以看出,JUnit 3 还是很简单的,只不过在每次编写测试类时,都需要继承 TestCase 类,这就无形之中给测试类增加了一些牵绊。下一篇文章中,我们一起来讨论一下 JUnit 4 的一些新特性,以及是如何简化测试用例的。

不要着急哦,下一篇马上就到。。。

这篇文章的主题,主要是介绍一下 JUnit 3,虽然 JUnit 3 已经不推荐使用了,但它也曾是风靡一时。这里旨在讨论一下 JUnit 3 的使用,以及它的内部构造,就当是为下一篇文章介绍 JUnit 4 做铺垫吧。之前已经把单元测试的重要性都讲出来了,这里就不再赘述了,直接进入正题。


介绍


JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。JUnit 测试是程序员测试,即所谓白盒测试。它是一个 Java 语言的测试框架,多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。


特性

  • 用于测试期望结果的断言(Assertion)
  • 用于共享共同测试数据的测试工具
  • 用于方便的组织和运行测试的测试套件
  • 图形和文本的测试运行器

使用


下载



加入项目

  • 把压缩包中的 junit3.8.1.jar 文件,加入到项目的 classpath 中。


基本流程

  • 写测试类并继承 TestCase 类
  • 写测试方法 testXXX()
  • 写测试套件类,将 test case 加入到 test suite
  • 运行JUnit Test 进行测试

演示代码


[java]  view plain  copy
  1. <span style="font-family:Microsoft YaHei;">package com.tgb.test;  
  2.   
  3. import junit.framework.Assert;  
  4. import junit.framework.Test;  
  5. import junit.framework.TestCase;  
  6. import junit.framework.TestSuite;  
  7.   
  8. // 1. 继承 TestCase 类  
  9. public class CalculatorTest extends TestCase {  
  10.     // 2. 测试方法必须以 test 开头  
  11.     public void testAdd() {  
  12.         int result = new Calculator().add(12);  
  13.         Assert.assertEquals(3, result);  
  14.     }  
  15.       
  16.     // 3. 将 testcase 加入 testsuite,可以同时测试多个用例  
  17.     public static Test suite() {  
  18.         return new TestSuite(CalculatorTest.class);  
  19.     }  
  20. }</span>  


剖析概念

  • TestCase(测试用例)
当一个类继承 JUnit 的 TestCase 类,即成为一个测试类,而且,测试类中的方法必须以 test 开头,比如:testAdd() 等。

  • TestSuite(测试套件)
TestSuite 是一组测试,目的在于将相关的测试用例归入一组。当执行一个 Test Suite 时,就会执行组内所有的测试方法,这就避免了繁琐的测试步骤。当然,如果没有为 test case 写 test suite 的话,系统会默认为每个 test case 生成一个 test suite。

  • Assert(断言)
Assert 用于检查条件是否成立,当条件成立则 Assert 方法通过,否则会抛出异常。例如,Assert.assertEquals(3, result); 判断 result 是否跟期望的3想等,如果想等则通过,否则测试失败。

主要有如下几个断言方法:

assertTrue/False():判断一个条件是 true 还是 false。

fail():失败,可以有消息,也可以没有消息。

assertEquals():判断是否想等,可以指定输出错误信息。注意不同数据类型所使用的 assertEquals 方法参数有所不同。

assertNotNull/Null():判断一个对象是否为空。

assertSame/NotSame():判断两个对象是否指向同一个对象。

failNotSame/failNotEquals():当不指向同一个内存地址或者不相等的时候,输出错误信息。错误信息为指定的格式。

  • setUp
每次测试方法执行之前,都会执行 setUp 方法,此方法用于进行一些固定的准备工作,比如,实例化对象,打开网络连接等。

  • tearDown
每次测试方法执行之后,都会执行 tearDown 方法,此方法用于进行一些固定的善后工作,比如,关闭网络连接等。


结束语


JUnit 3 就介绍到这,可以看出,JUnit 3 还是很简单的,只不过在每次编写测试类时,都需要继承 TestCase 类,这就无形之中给测试类增加了一些牵绊。下一篇文章中,我们一起来讨论一下 JUnit 4 的一些新特性,以及是如何简化测试用例的。

不要着急哦,下一篇马上就到。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值