JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

    JUnit是一个回归测试框架,用于编写和运行可重复的测试。它有以下特性:

 

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

    

   本篇博客通过一个简单的实例来展示JUnit3用于测试期望结果的断言这一特性,一个例子足以。

  1、建立一个Java Program,引入JUnit的jar包,新建一个名为test的Source Folder,把那些测试类都放在这个文件夹下。

  2、新建一个Package,将测试类和需要测试的目标类全部放在一个包里,需要给测试用类已Test为开头或结尾来命名,以区分和联系目标类。

3、展示例子:

    (1)首先建立一个简单到不能再简单的目标类。命名为UserManager.class.

 2
 3 import javax.management.RuntimeErrorException;
 4
 5 public class UserManager {
 6     /**
 7      * 一个简单的虚拟用户添加方法
 8      * @author 巨亚红
 9      * @date 2014-4-14 下午3:58:51
10      * @版本 V1.0   作者: 时间:  修改:
11      * @param userName
12      */
13     public void addUser(String userName){
14
15         System.out.println("userManger.addUser");
16         //throw new RuntimeException();
17     }
18     /**
19      * 一个简单的虚拟用户删除方法
20      * @author 巨亚红
21      * @date 2014-4-14 下午3:59:23
22      * @版本 V1.0   作者: 时间:  修改:
23      * @param userName
24      */
25     public void deleteUser(String userName){
26
27         System.out.println("userManger.deleteUser");
28     }
29     /**
30      * 一个简单的虚拟根据用户ID查找用户的方法
31      * @author 巨亚红
32      * @date 2014-4-14 下午3:59:43
33      * @版本 V1.0   作者: 时间:  修改:
34      * @param userId
35      * @return
36      */
37     public String findUserById(String userId){
38         return "Jessica";
39     }
40 }

    (2)添加或编写测试类。如果使用My Eclipse,可以直接在目标类右击---添加----JUnit Test Case,然后就会弹出相应的页面,可以选择New JUnit3 test 也可以选择New JUnit 4 test。我们本博客讲JUnit3,所以选3。编写UserManagerTest.java测试类如下,重要的是先要继承TestCase.java

 2
 3
 4 import junit.framework.TestCase;
 5
 6 //继承TestCase类很重要
 7 public class UserManagerTest extends TestCase {
 8     /**
 9      * 测试addUser方法
10      * @author 巨亚红
11      * @date 2014-4-14 下午4:07:28
12      * @版本 V1.0   作者: 时间:  修改:
13      */
14     public void testAddUser(){
15         UserManager userManager=new UserManager();
16         userManager.addUser("Jessica");
17         System.out.println("UserManagerTest.testAddUser");
18
19     }
20     /**
21      * 测试deleteUser方法
22      * @author 巨亚红
23      * @date 2014-4-14 下午4:07:46
24      * @版本 V1.0   作者: 时间:  修改:
25      */
26     public void testDeleteUser(){
27         UserManager userManager=new UserManager();
28         userManager.deleteUser("Jessica");
29         System.out.println("UserManagerTest.testDeleteUser");
30
31     }
32     /**
33      * 测试findUserById方法
34      * @author 巨亚红
35      * @date 2014-4-14 下午4:07:59
36      * @版本 V1.0   作者: 时间:  修改:
37      */
38      public void testFindUserById(){
39         UserManager userManager=new UserManager();
40         String userName=userManager.findUserById("000");
41
42         System.out.println("UserManagerTest.testFindUser----userName="+userName);
43         //定义你的期望值
44         String excepted="Jessica";
45         //如果期望值为Juyahong,JUnit就会提示报错。
46         //String excepted="Juyahong";
47         this.assertEquals(excepted, userName);
48
49     }
50 }

   通过this.assertEquals(expected, actual)来测试预期结果与实际结果是否匹配,如果匹配,JUnit就会显示绿色,如果不一样就提示红色。

正确:

错误:

  

  当然现在已有JUnit4,它与JUnit3的区别有以下几点:

1. JUnit4利用了 Java 5 的新特性"注释",每个测试方法都不需要以testXXX的方式命名,运行时不在用反射机制来查找并测试方法,取而带之是用@Test来标注每个测试方法,效率提升
    2. JUnit4中测试类不必继承TestCase了,另外要注意JUnit4和JUnit3引入的包完全不同。
            PS:在Eclipse中要使用Junit的话,必须要添加Junit的library。
    3.JUnit4和JUnit3在测试Suite时也有很大不同,即在测试套件时它们有区别,JUnit4在测试套件时,必须构造一个空类,而且使用Annotation的形式,即
@RunWith(Suite.class)
@Suite.SuiteClasses({ShoppingCartTest.class,ProductTest.class}),而JUuni3则是普通的直接用函数调用,添加Suite。

  下篇博客将详细讲述JUnit4的详细使用,看看它的进步之处在哪里。

  

JUnit 3一个例子就懂相关推荐

  1. 一个例子学懂搜索引擎(lucene)

    http://www.vifir.com/html/20080827/1703937.html 一个例子学懂搜索引擎(lucene) 来源:javaeye 作者: phz50 2008-08-27 1 ...

  2. 一个例子搞懂编码问题

    0x00 前言 相信中文字符编码问题每个程序员都或多或少遇到过,文件读写.网页抓取.数据库等等,凡是有中文的地方总会出现各种的编码问题,但是很少有人愿意花时间去彻底弄清这个问题(至少我以前是这样),每 ...

  3. lightgbm 保存模型 过大_一个例子读懂LightGBM的模型文件

    机器学习模型的可解释性是个让人头痛的问题.在使用LightGBM模型的肯定对生成的GBDT的结构是好奇的,我也好奇,所以就解析一个LightGBM的模型文件看看,通过这个解析,你可以看懂GBDT的结构 ...

  4. 一个例子看懂kotlin的集合和序列

    构造对比: 1.集合 这里setOf和mutableSetOf就是一个只读,一个支持修改处理.因为集合泛型的擦除,val和var其实不能控制只读和读写.故用这种构造方法. // 挨个元素传入 val ...

  5. 一个例子搞懂递归CTE

    CTE是SQL表表达式中的一种,全称为通用表表达式,使用CTE就好像建了一个临时表,在查询中可以直接调用这个临时表,从而增加代码的可读性,CTE通常不会在性能上给我们带来提升.CTE格式为: with ...

  6. 一个例子看懂神马是闭包

    闭包就是这个玩意儿.怎么用在此不做多讲.就告诉大家闭包长神马样子. <!DOCTYPE html> <html> <head><title>神马JS闭包 ...

  7. 一个例子入坑布谷鸟算法(附完整py代码)

    布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由 布谷鸟算法思想简介 更新位置的方式 莱维飞行 局部随机行走 抛出个 ...

  8. 一个例子带你搞懂python作用域中的global、nonlocal和local

    在编程中,只要接触过函数的,我相信都理解什么是全局变量和局部变量,概念比较简单,这里就不做解释了.在python中,用global语句就能将变量定义为全局变量,但是最近又发现有个nonlocal,一时 ...

  9. 抽象语法树 c语言,一个简单的例子看懂抽象语法树的魔力

    在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示.它以树状的形式表现编程语言的语法结构,树上的每个 ...

最新文章

  1. boot idea无法识别spring_intellij idea springboot无法读取配置文件的解决方法
  2. 一些与算法有关的网站
  3. python可变参数_Python 的四种共享传参详解
  4. 最有效的创建大数据模型的6个技巧
  5. Linux驱动设计ioctl函数的cmd参数不能为2
  6. Java GUI 基础知识
  7. 在使用Gradle构建的Spring Boot应用程序中覆盖Spring Framework版本
  8. 计算机考研379分,考研379分报考南开大学被刷,是调剂还是二战?师姐建议非常肯定...
  9. linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等
  10. Python爬虫编程实践 Task04
  11. 用C#(asp.net)写出登录验证码!
  12. 现代通信原理2.5:确定信号的能量谱密度、功率谱密度与自相关函数
  13. 电机学第一章(磁路的基本定律)
  14. Visio 2019 专业版 下载地址
  15. 【信息系统项目管理师】第四章 项目整体管理(考点汇总篇)
  16. Qt qmake和mingw32-make
  17. VMware 8.02虚拟机安装MAC lion 10.7.3教程 附送原版提取镜像InstallESD.iso!
  18. Mac 右键展示Copy path
  19. Java.math.BigDecimal.subtract()方法实例
  20. 正大国际期货:外盘黄金期货怎么做,需要注意什么?

热门文章

  1. Android Studio运行报错:无法访问XXX......请删除该文件或确保该文件位于正确的类路径子目录中
  2. MyBatis学习与使用(一)
  3. 流包装器实现WebShell免杀
  4. 这些老外的开源技术养活了很多国产软件
  5. 303. Range Sum Query - Immutable
  6. Project Tango 的一些应用
  7. 优秀网页设计各种国外站的素材
  8. CentOS7安装MySQL8.0图文教程
  9. PHPSTORM下安装XDEBUG
  10. HDU-1269 Tarjan求强连通分量,模板题