单元测试------入门篇
作者:网络转载 发布时间:[ 2011/7/20 15:09:27 ] 推荐标签:
前面的一篇文章(单元测试------理论篇)讨论了什么是单元测试、单元测试的优点并列举了很多不写单元测试的借口。如果你同意我们的观点,认同单元测试确实是软件开发中不可缺少的过程,那么我们开始单元测试之旅吧!
一个比较大值的函数
我们首先引入一个比较大值的函数。我们传入一个类型为int的数组参数,它将返回大值的那个元素。代码如下:
public class Largest {
public static int largest(int[] datas){
int max = 0;
for(int i = 0 ; i < datas.length ; i++){
if(max < datas[i]){
max = datas[i];
}
}
return max;
}
}
可是,如何写我们的测试代码呢?
直接在Largest类中添加一个main方法,要么重新写一个可运行的类来测试Largest。这样的测试,同样给我们带来了很大的挑战:
1、验证困难。如何去验证代码的行为和我们的期望一致呢?使用很多的if…else再加上==或equals()来判断?对异常的情况又如何处理呢?混乱的验证,很容易给我们的测试代码带来BUG,让我们对自己的测试不够自信。
2、测试类无法管理。我们如何直观的得到测试运行成功或失败的消息?用原始的System.out.println()吗?我们能一次运行多个单元测试吗?如果前面的测试运行出现异常,后面的测试还能继续运行吗?如果测试类很多,上百个甚至更多,我们能方便的由控制台输出测试结果吗?
3、无法统计测试代码覆盖情况。缺少统一的测试代码编写规范和约定,可读性和维护性差。
不过,面对这些挑战不用沮丧。单元测试框架已经帮我们解决了这些问题,它提供了很多测试的基础设施,让我们能把更多的经历投入到测试代码的编写中来。
JUnit
JUnit初是由Erich Gamma(GoF之一)和Kent Beck(xp和refactor的先驱之一)编写的,它是一个开源的Java测试框架,用于编写和运行可重复的测试。
下面我们逐步介绍如何对Largest类测试:
一、JUnit的安装。如果你使用的开发工具是Eclipse,不用做任何安装,它已经提供了Junit的支持。否则,你需要去http://www.junit.org/下载Junit安装包。安装非常简单,只要将junit.jar包设置到ClassPath中,让你的Java代码能够找到它可以了。
二、编写测试代码。代码如下:
public class LargestTest extends TestCase {
public void testLargest(){
int[] datas = {7,8,9};
assertEquals(9,Largest.largest(datas));
}
}
说明:
1、测试类一般要继承抽象类TestCase。它实现了各种测试方法,并提供了一个测试过程的架构。
2、测试代码通过断言(Assert)来判断某个被测试函数是否正常工作。JUnit提供了很多断言函数,用来确定:某个条件是否为真;两个数据是否相等,或者不等,或者其它的一些情况。
3、测试方法名以“test”开头,这样JUnit框架会自动发现这是一个测试方法。
三、运行测试类。
运行测试成功。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11