单元测试junit框架详解
首先在给出一个类Operator,加入如下代码:
public class Operator { // 加法 运算
public int add(int i,int j){
return i+j;
} // 除法 运算
public int divide(int i,int j){
return i/j;
} }
接着建一个类来测试上各类的方法,为了命名规范性,取名为TestOperator。代码如下:
/*
* 注意测试类名的命名方法,一般测试哪个类,就在其前面加上Test。
* 测试类, 去测试 operator这个类 的 方法
*
*
* 关于 junit 测试 框架的使用, 掌握 如下的内容 一般 够你用了 .
*
*/
public class TestOperator {//如果想要测试整个类里面的所有方法,直接点击类名进行测试就会测试这类里面的所有的方法 Operator op;//抽取对象到乘员位置。 // 这里 加了 @BeforeClass 之后, 那么 这个方法 就会 在 类加载的时候 执行
@BeforeClass
public static void beforeClass(){//注意方法命名static System.out.println("before class ..."); } // 这里 加了 @Before 之后, 那么 这个方法 就会 在每个 【测试方法】 执行 之前 执行
@Before
public void before(){//在before里面进行初始化对象
op = new Operator();//如果方法有100多个,每次都new显然很麻烦。因此在这里new出这个对象就可以了,
//在每个 【测试方法】 执行 之前 执行 不必担心对象为空指针。
System.out.println("before...");
}
// 使用测试框架测试程序的条件 :
// 第一个:测试 方法 不能 接收 任何的参数, 并且不能有任何的返回值, 必须是void
// 第二个: 需要在测试方法上加 @Test注解
// 使用 junit 测试框架去 测试运行这个方法
// 测试 的时候, 会看到一个 junit 测试的结果, 如果 测试的结果是绿条, 那么 恭喜你,测试通过 ,
// 如果是 红条, 则测试不通过
@Test
public void testAdd(){
int result = op.add(1, 2);
//System.out.println("结果 :" + result);
// 使用 Assert 断言 类 【来对 结果进行判断】
Assert.assertEquals(3, result);
}
// *android 中 也是 使用 junit 测试 框架 对 代码进行 测试 .
// cts(compatibility test suit 兼容性测试单元) 的测试 ---
@Test(expected=java.lang.ArithmeticException.class)//期望测试的时候是否会抛出一个这样的异常
public void testDivide(){
int result = op.divide(3, 0);
Assert.assertEquals(3, result);
}
// 填入10表示10 毫秒内测试的单元必须运行完毕
@Test(timeout=1)
public void testAdd2(){
int result = op.add(1, 2);
}
// 这里 加了 @After 之后, 那么 这个方法 就会 在每个【 测试方法 执行 之 后】 执行after
@After
public void after(){//因此可以在这里面释放对象资源。
op = null;
System.out.println("after...");
}
// 类 资源 释放的时候 调用
@AfterClass
public static void afterClass(){
System.out.println("after class ...");
}
}
掌握以上单元测试的相关概念后,足够应对程序测试了。
单元测试junit框架详解的更多相关文章
- Junit使用详解
http://junit.org/上详细介绍了Junit.JUnit is a simple framework to write repeatable tests. It is an instanc ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- Shiro 安全框架详解一(概念+登录案例实现)
shiro 安全框架详细教程 总结内容 一.RBAC 的概念 二.两种常用的权限管理框架 1. Apache Shiro 2. Spring Security 3. Shiro 和 Spring Se ...
- jQuery Validate验证框架详解
转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...
- mina框架详解
转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...
- lombok+slf4j+logback SLF4J和Logback日志框架详解
maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...
- [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解
Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂.Core Data 相关的类比较多,初学者往往不太容易弄懂.计划用三个教程来讲解这一部分: 框架详解 ...
- iOS 开发之照片框架详解(2)
一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLib ...
- Quartz.NET作业调度框架详解
Quartz.NET作业调度框架详解 http://www.cnblogs.com/lmule/archive/2010/08/28/1811042.html
随机推荐
- Exception 的 toString() 方法和 getMessage() 方法的区别
Exception 的 toString() 方法和 getMessage() 方法的区别: 在开发的过程中打印错误日志时尽量使用e.toString() 方法, 因为当错误为空指针时 e.getMe ...
- 从Dynamics CRM2011到Dynamics CRM2016的升级之路
CRM的产品更新特别快,特别是最近的几个版本,很多客户依旧停留在2011甚至是4.0,也经常会听到有人问2011能不能升级至最新版,2013能不能升级至最新版,本文将简单演示下从2011升级到2016 ...
- Android音频焦点处理相关的方法
有这么一种场景:你打开qq音乐.优酷客户端.视频播放的时候.这个时候突然来电显示了,此时所有的MediaPlayer相关的服务或者响应都进入"休眠"状态.那么,这个功能是怎么实现的 ...
- KVO and Swift
不像Objective-c中的类,Swift类对于KVO并没有原生的支持,不过你可以在类型安全的前提下使用属性观察者轻松的完成相同的目标. 不管如何,从NSObject类派生出的类是支持KVO的,如果 ...
- Scheme N皇后
(define (range n) (define (recur n) () '() (cons n (recur (- n ))))) (recur (- n ))) (define (flatte ...
- Dynamics CRM2016 Web API之Use custom FetchXML
CRM2016中新增的web api支持fetch xml了,之前使用FetchXML的场景是在后天代码中通过组织服务的retrieve multiple方法,但实际的应用效果有多大,还需要在实际的项 ...
- JavaEE介绍
相关术语 为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担.为了程 ...
- J-Robot,能走、能跳舞的机器人
最近一个月基本上没有更新博客了,主要是和朋友一起在捣鼓J-Robot这个机器人,现在基本是可以控制它了,也算是一点小小的成就感吧. 先来几张图片吧. 再来一张: 是否觉得呆呆的?来,Jim ...
- SQL 数据库语言分析总结(三)
这次介绍通过mysql-WorkBench这个工具来管理操作数据库. 创建和删除数据库 1.点击创建数据库按钮 2.选中后右键,出现drop schema一项,这个用来删除. 设置默认数据库 选中右键 ...
- Django使用forms来实现评论功能
貌似Django从版本1.6开始就放弃了对自带的comments的使用,具体原因未查,但是现在使用Django的内部的模块也可以实现评论功能,那就是借助于forms模块,下面是我的一个小例子. 环境准 ...