JUnit学习笔记 2011年10月01日 环境 MyEclipse 9.0
铺垫:
1、单元测试(Unit Test):
是针对软件的最小模块进行正确性检验的测试工作。
所谓最小模块,在OOP的范畴内,通常是指对象的方法。
2、为什么要做单元测试?
进行单元测试是降低软件风险和减少维护成本的有效途径。
3、以前是怎么做测试的?
main方法、sysout输出……
优点: 快速直接
缺点: 没有留下可重用的代码。
无法进行自动化回归测试。
增加了类的体积,代码不清晰。
不规范、不优雅。
4、断言(Assertion):
在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,
一个正确程序必须保证这个boolean表达式的值为true;
如果该值为false,说明程序已经处于不正确的状态下,assert将给出警告或退出。
一般来说,assertion用于保证程序最基本、关键的正确性。
assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。
/*************************************************************************************************
* 需补充关键词:
* ① 测试驱动开发(TDD: Test-Driven Development)
* ② Hamcrest(JUnit4.4后引入的测试框架提供了一套匹配符,可结合使用全新的断言语法:assertThat)
************************************************************************************************/
---------------------------------------我是华丽的分割线-------------------------------------------
正题:
一、JUnit简介
JUnit是基于面向对象构建的java单元测试框架。
JUnit是开放源代码项目,可按需要进行扩展,操作相对简单。
JUnit官方网站:http://www.junit.org
JUnit的口号:keep the bar green to keep the code clean。(PS:口号的具体含义用过JUnit后就知道了……)
目前JUnit官网最新版本是4.10。
我用的MyEclipse 9.0内置了3.8.2和4.8.1。
3.X和4.X两个版本最主要的区别是:
JUnit3基于继承
JUnit4基于注解
两种未通过测试的结果:
Failure: 测试失败
Error: 异常错误
二、JUnit应用
待测类之一:
/**
* @author Maxpin on 2011-10-01 含有四则运算方法的普通类
*/
public class Calc {
/**
* 加法
*
* @param x
* 数x
* @param y
* 数y
* @return 和
*/
public int add(int x, int y) {
return x + y;
}
/**
* 减法(私有方法)
*
*