JUnit
来源:互联网 发布:亿百润 知乎 编辑:程序博客网 时间:2024/06/06 13:59
1 JUnit介绍
JUnit是由Erich Gamma and Kent Beck两位大牛设计的。
其目的是为了提供更好的测试工具。
JUnit是函数级别的测试,所以叫做unit。
一个类应该测试什么呢?测试其中的函数。JUnit针对这种需求,就开发了针对一个类中的函数的测试。
2 JUnit理解
一般一个java 类有一个相应的test类。如HelloWorld.java 有一个对应的HelloWorldTest.java。这个HelloWorldTest中包含有很多test函数,对源代码中的各个函数进行测试,如包括了
testfunc()1;
testfunc()2;
testfunc()3;
那么我在类中应该怎么写呢?
public class HelloWorldTest{
HelloWorld helloWorld = new HelloWorld();
public static void main(String args[]){
HelloWorldTest test = new HelloWorldTest();
test.testfunc()1;
test.testfunc2();
test.testfunc3();
summaryAndReport();
}
public testfunc1(){
prepare();
helloWorld.func1();
verifyTestResult();
finalize();
}
......
}
如果老是这么写,那么这个是我们普通工程师的福音啊,跟老板说我今天写了多少多少行代码,既有功劳,也有苦劳,还不费心。
但是大牛们就不干了,大牛的时间宝贵啊,说你们不能忽悠老板啊。老板我来!
于是大牛们抽丝剥茧,抽象解耦,封装抽离,做了这么一个框架JUnit,我们普通工程师只需要写最关键的业务代码,其余重复部分或者叫做不变部分由框架JUnit代劳。
那么看看上面代码中有哪些是和业务相关的,有哪些是公共的,抽象的,不变的,可以抽离成框架的呢?
1) main函数太讨厌了,每次都要写,其实对我的测试程序来说,都是一样的。拿到框架中
2) 我写的测试函数,每次都会被调用的,可是我每次还要显示写一遍,太麻烦了,拿到框架中
3)summayAndReport部分其实和我的代码是没有关系的,如果程序中没有这一部分,也行,但是我每次要肉眼去看成功了没有。不如写一个专门的summayAndReport模块,帮我们完成这个任务
4)在功能verifyTestResult中,提供了assert方法,可以更方便的实现verify功能
5)抽出prepare为setup方法,抽出finalize为teardown方法。
所以使用JUnit后,你的程序简化为
public class HelloWorldTest extends TestCase{
HelloWorld helloWorld = new HelloWorld();
public testfunc1(){
helloWorld.func1();
verifyTestResult();
}
......
}
3 类图架构
- JUNIT
- junit
- Junit
- JUnit
- JUnit
- JUnit
- JUNIT
- junit
- Junit
- JUnit
- Junit
- JUnit
- Junit
- Junit
- JUnit
- junit
- junit
- JUnit
- android webview加载网页
- 自定义UITableView折叠效果
- pb复合表如何制作不夠一定行数插入空行
- PL/SQL 存储过程入门小例子
- android makefile文件批量复制文件的方法
- JUnit
- 人工智能领域中声源定位的研究与发展------第二章 声源定位系统 (3)
- 获取到通知栏的高度
- Linux-Linux 内核启动流程
- 用二十秒记住几个PHP基础知识点
- 使用cxf生成客户端,并用生成的客户端调用服务端
- golang的一些常用函数
- 通过生成PSR文件,实现动态报表格式
- 使用ireport+jasperReport报表生成