前言


上一篇文章《为什么要进行烦人的单元測试?》讨论了一下现阶段软件开发中,程序猿们測试情况的现状。这篇文章中,我打算介绍一下单元測试的工具(插件)。而且推荐大家以后在开发中,真正的用上单元測试,用好单元測试。


说明


这篇文章的主题,主要是介绍一下 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 进行測试

演示代码

<span style="font-family:Microsoft YaHei;">package com.tgb.test;

import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite; // 1. 继承 TestCase 类
public class CalculatorTest extends TestCase {
// 2. 測试方法必须以 test 开头
public void testAdd() {
int result = new Calculator().add(1, 2);
Assert.assertEquals(3, result);
} // 3. 将 testcase 增加 testsuite,能够同一时候測试多个用例
public static Test suite() {
return new TestSuite(CalculatorTest.class);
}
}</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 还是非常easy的,仅仅只是在每次编写測试类时,都须要继承 TestCase 类。这就无形之中给測试类添加了一些牵绊。

下一篇文章中,我们一起来讨论一下 JUnit 4 的一些新特性,以及是怎样简化測试用例的。


不要着急哦。下一篇立即就到。。。

最新文章

  1. WebStorm和sublime上使用git连接github(转)
  2. kuangbin_SegTree M (HDU 4553)
  3. maven dependencies 里面的包怎么导出
  4. Python基础(二)之元组及字典
  5. poj 2378 (dijkstra)
  6. PHP带重试功能的curl
  7. spring task定时器笔记
  8. linux内存回收 内核参数
  9. jquery更改Reaper某一列的值
  10. MVC 自定义AuthorizeAttribute实现权限管理
  11. JDK1.8聚合操作
  12. if(!!attr)是什么鬼???
  13. JqueryEasyUI-从入门到精通-第一天
  14. ASP.NET MVC 开发微信支付H5(外置浏览器支付)
  15. PAT 1008. Elevator (20)
  16. ActiveMq笔记2-消息持久化
  17. mysql 使用问题?
  18. java.util (Collection接口和Map接口)
  19. freecodecamp数字转化成罗马数字
  20. php面试题五之nginx如何调用php和php-fpm的作用和工作原理

热门文章

  1. Jenkins Kubernetes Slave 调度效率优化小记
  2. HTTPS 建立连接的详细过程
  3. vimgdb安装以及使用
  4. 根据自己的博客数据统计国内IT人群
  5. TensorFlow[1]:概念和简例
  6. python win32 简单操作
  7. 如何用Python写一个计算器软件 附带效果图
  8. javascript执行机制
  9. head first python菜鸟学习笔记(第七章) ——web应用之为数据建模
  10. linux 挂在win下文件