什么是单元测试?
写了一个类和一些方法,给别人用,会不会有bug?那就测一下这些方法吧
怎么测?
用main方法测?不能一起运行,需要人为观察输出是否正确,测试效率低
单元测试能带来什么好处?
emmm,重用测试,应对将来的功能的变换;”甩锅“,明确知道自己的代码没问题;“长痛不如短痛”:测试的尽早介入原则,测试贯穿整个开发流程,bug发现的越早,用来修复bug的代价越低
样例代码和jar包:Coding
1.选择开发工具
操作系统 | window10 |
---|---|
JDK | 1.8.0_71 |
开发语言 | java |
开发工具 | eclipse Mars Release (4.5.0) |
单元测试工具 | Junit4.12 |
-
我选择的开发工具是
eclipse
,由于我之前安装过,所以不在这里介绍安装过程,有需要的可以自行百度。
-
单元测试工具选用的Junit4.12,junit44.8需要的jdk版本是jdk1.5以及以上,junit4.94.12需要jdk1.6以及以上,如果使用的是junit5需要的jdk版本就必须是jdk1.8以及以上。除了
junit
测试工具,还有TestNG
测试框架,有时间的话,后面会出一个教程。 -
单元测试工具jar包的获取
- IDE自带- 官网获取:https://junit.org/junit4/ - 第三方仓库:http://maven.aliyun.com
http://search.maven.org/
https://code.google.com/
2.单元测试过程
- (1)编写需要被测试的java类
创建类Calculate
- (2)编写测试类
利用Eclipse
自带的Junit4
进行单元测试,在包名右键->new->JUnite Testt Case;
这里选择JUnit 4 test,测试类名一般为XxxTest
,因为我们测试Calculate
类,所以测试类名为CalculateTest
,点击下面的Class under test旁边的Browse..来选择被测试的类
选中我们被测试类Calculate
,点击OK
因为我们选用Eclipse
自带的Junit4
,所以这里直接勾上Perform the following action,点击OK
-
(3)运行测试类
-
(4)测试结果展示
keeps the bar green to keep the code clean
3.参数化自动测试
- (1)编写测试类
- (4)测试结果展示
4.使用测试套件测试
在包名上右键->new->other(或者使用快捷键Ctrl+N)。
选中Junit Test Suite,点击Next。
选择JUnit 4 suite,填写套件名AllTests,选择套件需要包含的测试类,点击Finish。
生成的测试套件类如下:。
运行该测试套件类,结果如下:
5、总结
JUnit4 Annotation
- @Test: 测试方法
a) (expected=XXException.class)
b) (timeout=xxx) - @Ignore: 被忽略的测试方法
- @Before: 每一个测试方法之前运行
- @After: 每一个测试方法之后运行
- @BeforeClass: 所有测试开始之前运行 一般用于准备测试需要的资源,比如开启和数据库的连接
- @AfterClass: 所有测试结束之后运行 用于关闭测试需要的资源,比如关闭跟数据库的连接
注意
- 遵守约定,比如:
a) 类放在test包中
b) 类名用XXXTest结尾
c) 方法用testMethod命名