一. 概述
单元测试:针对最小的功能单元(方法),编写测试代码对其进行正确性测试。
二. Junit单元测试框架
可以用来对方法进行测试,它是第三方公司开源出来的(很多开发工具已经集成了Junit框架,比如idea)
优点:
① 可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立。
② 不需要程序员去分析测试的结果,会自动生成测试报告。
使用步骤
① 将Junit框架的jar包导入到项目中(注意:IDEA集成了Junit框架,不需要我们自己手工导入了)
② 为需要测试的业务类,定义对应的测试类,并为每个业务方法,编写对应的测试方法(必须:公共、无参、无返回值)
③ 测试方法上必须声明@Test注解,然后在测试方法中,编写代码调用被测试的业务方法进行测试
④ 开始测试:选中测试方法,右键选择“Junit运行”,如果测试通过则是绿色;测试失败则是红色
public class StrUtils {
/*
* 打印字符串长度
* */
public static void pringtStrLength(String str) {
System.out.println("字符串的长度:" + str.length());
}
/*
* 获取字符在字符串位置
* */
public static int getMaxIndex(String str,char ch) {
if (str == null || str.length() == 0) {
return -1;
}else {
return str.indexOf(ch);
}
}
}
public class StrUtils_Test {
@Test
public void testpringtStrLength(){
StrUtils.pringtStrLength("卡莎:艾卡西亚暴雨");
StrUtils.pringtStrLength(null);
}
@Test
public void testgetMaxIndex(){
System.out.println(StrUtils.getMaxIndex(null,'a'));
System.out.println(StrUtils.getMaxIndex("dfsfsadsdsa",'a'));
//断言机制:程序员可以通过预测业务方法的结果 预测返回6 实际返回5
assertEquals(6,StrUtils.getMaxIndex("dfsfsadsdsa",'a'),"方法有bug");
}
}
三. Junit单元测试框架的常用注解
Junit4版本
注解 | 说明 |
@Test | 测试类中的方法必须用它修饰才能成为测试方法,才能启动执行 |
| 用来修饰一个静态方法,该方法会在每一个测试方法执行前执行一次 |
| 用来修饰一个静态方法,该方法会在每一个测试方法执行后执行一次 |
| 用来修饰一个静态方法,该方法会在所有测试方法之前只执行一次 |
| 用来修饰一个静态方法,该方法会在所有测试方法之后只执行一次 |
Junit5版本
注解 | 说明 |
@Test | 测试类中的方法必须用它修饰才能成为测试方法,才能启动执行 |
| 用来修饰一个静态方法,该方法会在每一个测试方法执行前执行一次 |
| 用来修饰一个静态方法,该方法会在每一个测试方法执行后执行一次 |
| 用来修饰一个静态方法,该方法会在所有测试方法之前只执行一次 |
| 用来修饰一个静态方法,该方法会在所有测试方法之后只执行一次 |
在测试方法执行前执行的方法常用于:初始化资源
在测试方法执行后执行的方法常用于:释放资源