JUnit 3一个例子就懂
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.
import javax.management.RuntimeErrorException;
public class UserManager {
/**
* 一个简单的虚拟用户添加方法
* @author 巨亚红
* @date 2014-4-14 下午3:58:51
* @版本 V1.0 作者: 时间: 修改:
* @param userName
*/
public void addUser(String userName){
System.out.println("userManger.addUser");
//throw new RuntimeException();
}
/**
* 一个简单的虚拟用户删除方法
* @author 巨亚红
* @date 2014-4-14 下午3:59:23
* @版本 V1.0 作者: 时间: 修改:
* @param userName
*/
public void deleteUser(String userName){
System.out.println("userManger.deleteUser");
}
/**
* 一个简单的虚拟根据用户ID查找用户的方法
* @author 巨亚红
* @date 2014-4-14 下午3:59:43
* @版本 V1.0 作者: 时间: 修改:
* @param userId
* @return
*/
public String findUserById(String userId){
return "Jessica";
}
}
(2)添加或编写测试类。如果使用My Eclipse,可以直接在目标类右击---添加----JUnit Test Case,然后就会弹出相应的页面,可以选择New JUnit3 test 也可以选择New JUnit 4 test。我们本博客讲JUnit3,所以选3。编写UserManagerTest.java测试类如下,重要的是先要继承TestCase.java类
import junit.framework.TestCase; //继承TestCase类很重要
public class UserManagerTest extends TestCase {
/**
* 测试addUser方法
* @author 巨亚红
* @date 2014-4-14 下午4:07:28
* @版本 V1.0 作者: 时间: 修改:
*/
public void testAddUser(){
UserManager userManager=new UserManager();
userManager.addUser("Jessica");
System.out.println("UserManagerTest.testAddUser"); }
/**
* 测试deleteUser方法
* @author 巨亚红
* @date 2014-4-14 下午4:07:46
* @版本 V1.0 作者: 时间: 修改:
*/
public void testDeleteUser(){
UserManager userManager=new UserManager();
userManager.deleteUser("Jessica");
System.out.println("UserManagerTest.testDeleteUser"); }
/**
* 测试findUserById方法
* @author 巨亚红
* @date 2014-4-14 下午4:07:59
* @版本 V1.0 作者: 时间: 修改:
*/
public void testFindUserById(){
UserManager userManager=new UserManager();
String userName=userManager.findUserById("000"); System.out.println("UserManagerTest.testFindUser----userName="+userName);
//定义你的期望值
String excepted="Jessica";
//如果期望值为Juyahong,JUnit就会提示报错。
//String excepted="Juyahong";
this.assertEquals(excepted, userName); }
}
通过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一个例子就懂的更多相关文章
- 一个例子看懂所有nodejs的官方网络demo
今天看群里有人用AI技术写了个五子棋,正好用的socket.io,本身我自己很久没看nodejs了,再加上Tcp/IP的知识一直很弱,我就去官网看了下net.socket 发现之前以为懂的一个官方例子 ...
- 一个例子读懂 JS 异步编程: Callback / Promise / Generator / Async
JS异步编程实践理解 回顾JS异步编程方法的发展,主要有以下几种方式: Callback Promise Generator Async 需求 显示购物车商品列表的页面,用户可以勾选想要删除商品(单选 ...
- 一个例子搞清楚Java程序执行顺序
当我们new一个GirlFriend时,我们都做了什么? 一个例子搞懂Java程序运行顺序 public class Girl { Person person = new Person("G ...
- 一个例子"入坑"布谷鸟算法(附完整py代码)
布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由 布谷鸟算法思想简介 更新位置的方式 莱维飞行 局部随机行走 抛出个 ...
- 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
使用Junit测试一个spring静态工厂实例化bean的例子,所有代码都没有问题,但是出现 java.lang.IllegalArgumentException 异常, 如下图所示: 开始以为是代码 ...
- zz:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
首先定义:待优化参数: ,目标函数: ,初始学习率 . 而后,开始进行迭代优化.在每个epoch : 计算目标函数关于当前参数的梯度: 根据历史梯度计算一阶动量和二阶动量:, 计算当前时刻的下降 ...
- spring笔记--使用springAPI以及自定义类 实现AOP的一个例子
Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...
- ReCap 360 photo照片建模技术的又一个例子
这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...
- 从一个例子中体会React的基本面
[起初的准备工作] npm init npm install --save react react-dom npm install --save-dev html-webpack-plugin web ...
随机推荐
- [转]oracle制定定时任务(dbms_jobs)
原文地址:http://www.cnblogs.com/siashan/p/4183868.html 本节摘要:本节介绍使用oracle自带的job来实现oracle定制定时执行任务. 1.引言 ...
- InstallShield脚本事件
脚本事件主要有三大类:Before Move Data(安装数据前).Move Data(安装数据过程中).After Move Data(安装数据后). OnBegin:在初始化后,被调用 OnFi ...
- C语言 · 最长字符串
算法训练 最长字符串 时间限制:1.0s 内存限制:512.0MB 求出5个字符串中最长的字符串.每个字符串长度在100以内,且全为小写字母. 样例输入 one two three ...
- C语言 · 反置数
算法训练 反置数 时间限制:1.0s 内存限制:512.0MB 问题描述 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾 ...
- git .gitignore 文件不起作用
.gitignore 不起作用的原因是因为 git 有以前文件缓存,只要清理一次缓存即可 git rm -r --cached . // 然后再进行 git git add . git commit
- sql逻辑查询 理论知识
参考并转载http://www.cnblogs.com/bhtfg538/archive/2008/11/25/1341016.html First: (8) SELECT (9) DISTINCT ...
- spring+dubbo整合
创建公共接口或者project用到的一些bean.我这里就仅仅是创建了一个接口.project文件夹例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...
- ECS Linux服务器xfs磁盘扩容
ECS Linux服务器xfs磁盘扩 ECS Linux服务器xfs磁盘使用阿里云官方提供的磁盘扩容方法扩容会有报错: [root@iZ28u04wmy2Z ~]# e2fsck /dev/xvdb1 ...
- San初步使用
考虑使用这个玩意只有两个理由: 组件反解.可以让服务端模板渲染首屏,随后由框架接手控制. 从IE7(作者在评论中有提到)开始支持. 在改造老项目上特别吸引人,只需要移除哪些繁杂的dom操作由m ...
- [日志log] 常用log日志记录方式对比和详解
1.现在都有哪些记录日志的方法 A.java.util.logging.Logger - 使用详解 B.log4j - 使用详解 C.SLF4J(simple logging Facade for J ...