Junit单元测试学习笔记一
我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。正因为如此麻烦,所以程序员们编写单元测试的热情不是很高。于是有一个牛人推出了单元测试包,大大简化了进行单元测试所要做的工作,这就是JUnit4。本文简要介绍一下在Eclipse中使用JUnit4进行单元测试的方法。
首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:
public class Calculator {
private static int result; // 静态变量,用于存储运行结果
public void add(int n) {
result = result + n;
}
public void substract(int n) {
result = result - 1; //Bug: 正确的应该是 result =result-n
}
public void multiply(int n) {
} // 此方法尚未写好
public void divide(int n) {
result = result / n;
}
public void square(int n) {
result = n * n;
}
public void squareRoot(int n) {
for (; ;) ; //Bug : 死循环
}
public void clear() { // 将结果清零
result = 0;
}
public int getResult() {
return result;
}
}
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:
在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示:
在弹出的对话框中,进行相应的选择,如下图所示:
点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示:
之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception {
calculator.clear();
}
@Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
}
@Test
public void testSubstract() {
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
}
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() {
}
@Test
public void testDivide() {
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
}
}
第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示:
运行结果如下:
进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”
转载于:https://www.cnblogs.com/Ant-soldier/p/5042485.html
Junit单元测试学习笔记一相关推荐
- Junit单元测试学习笔记(一)
l 使用方法 下载junit https://github.com/junit-team/junit/wiki/Download-and-Install 使用junit jar包 l 一个简单的te ...
- Go单元测试学习笔记 V1.0
与你相识 博主介绍: – 本人是普通大学生一枚,每天钻研计算机技能,CSDN主要分享一些技术内容,因我常常去寻找资料,不经常能找到合适的,精品的,全面的内容,导致我花费了大量的时间,所以会将摸索的内容 ...
- Mybatis的学习笔记
MyBatis Mybatis是一款非常优秀的持久层框架,学习的目的是要掌握精通. 那么今天我们就来学习一下这个优秀的框架知识! 此外,由于博主的水平的原因,文章的质量可能不会太高,请酌情观看.如果大 ...
- 七、Web服务器——Junit单元测试 反射 注解学习笔记
今日内容 1. Junit单元测试 2. 反射 3. 注解 Junit单元测试: * 测试分类:1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值.2. 白盒测试:需要写代码的.关注程 ...
- SpringBoot学习笔记(16):单元测试
SpringBoot学习笔记(16):单元测试 单元测试 单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小 ...
- spring学习笔记06-spring整合junit(出现的问题,解决的思路)
spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...
- Android学习笔记 75. 单元测试
Android学习笔记 Android 开发者基础知识 (Java) -- Google Developers 培训团队 文章目录 Android学习笔记 Android 开发者基础知识 (Java) ...
- Java基础学习总结(130)——使用WebSocket导致jUnit单元测试报No suitable default RequestUpgradeStrategy found错误的解决方法
若在SpringMVC项目中使用了WebSocket,在运行jUnit单元测试时,可能会报如下错误: Caused by: java.lang.IllegalStateException: No su ...
- JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
最新文章
- 微服务架构之「 配置中心 」
- 【C语言】一文搞定如何计算结构体的大小----结构体内存对齐规则
- OCS 企业版图解详细部署
- (asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用
- android ViewPager页面左右滑动切换
- python参数顺序 元组 字典_python学习之元组列表字典操作
- 聊聊spring cloud gateway的XForwardedHeadersFilter
- 创建弹出窗口的图片展示
- jQuery Mobile基础 学习笔记
- spring mvc 下载文件链接
- 一个存储过程,折腾了我半天
- 常见问题-瑞友天翼应用虚拟化系统安装之前需要做什么准备
- vb datagrid mysql_vb ADO 连接数据库,并绑定datagrid控件
- 基于leaflet地图对行政区进行维诺图区域划分
- Linux下3种常用的网络测速工具
- ”小糊涂“与美女网站的收费机制
- 看完了想点赞的文章!| 数据类好文推荐
- 重启数据库服务器后数据库无法连接的解决方法
- 科研热点|2023年IEEE Fellow入选者名单公布,中国学者占比1/4~
- XTF格式侧扫声呐数据格式解析
热门文章
- 美术干货:用Blender绘制low poly风格的游戏角色
- 《伊拉图斯死之主》:硬核游戏也有相对放松的游戏体验
- android data binding jetpack III 绑定一个方法
- 关于async 中return 和 return await 的差异
- ArcGIS 10.0 ArcGIS 9.3.1数据生成实验--个人地理数据库
- java13 InputStream,Reader
- ubuntu 配置url地址重定向协议
- linux启动lighttpd服务,如何使用Yum在CentOS和RHEL上安装Lighttpd Web服务器
- 7-37 图形卡片排序游戏 (40 分)
- 计算机专业毕业求职,计算机专业毕业生求职简历