单元测试工具Junit浅谈
什么是单元测试?
写了一个类和一些方法,给别人用,会不会有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命名
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥