java高级 -Junit单元测试
Junit单元测试就是针对最小的功能:方法,编写测试代码对其进行正确性测试。用main方法进行测试的弊端是一个方法测试失败可能会影响别的方法的测试,也无法得到测试报告,需要我们自己观察数据是否正确。
此时,我们就需要使用Junit单元测试框架,它是由第三方公司开发出来的。
优点:可以灵活的编写测试代码,可以针对某个方法进行测试,也支持一键测试所有方法,且各自独立。
不需要程序员分析测试结果,会给出测试报告。
1、为需要测试的业务类,定义对应的测试类,并为每个业务方法,编写测试方法。
测试方法上必须有@Text注解,当只需要启动单一测试方法时,在该方法内右键选Junit运行即可。测试通过是绿色,没通过是红色。
业务类
package junitDemo;public class StringUtil {public static void PrintNumber(String name){if(name==null){System.out.println("参数不能为null");return;}System.out.println("名字长度是:"+name.length());}/*** 求字符串最大索引*/public static int getMaxIndex(String str){if(str == null ||"".equals(str))return -1;return str.length()-1;}
}
测试方法
package junitDemo;import org.junit.Assert;
import org.junit.Test;//测试类:junit单元测试框架,对业务类中的业务方法进行正确性测试
public class StringUtilText {//测试方法:必须是公开public,无参,无返回值//测试方法必须加上@Test注解@Testpublic void textPrintNumber() {//测试步骤StringUtil.PrintNumber("张三abc");//测试用例StringUtil.PrintNumber("");StringUtil.PrintNumber(null);}@Testpublic void testGetMaxIndex() {int index = StringUtil.getMaxIndex("abcdefg");int index2 = StringUtil.getMaxIndex(null);int index3 = StringUtil.getMaxIndex("");//做断言,测试结果与预期结果是否一致Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",6,index);Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",-1,index2);Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",-1,index3);}
}
在执行方法时,可以定义一个变量存储返回值,然后在后续代码进行断言,如果返回值与预期结果一致,则标绿,不一致则标红