单元测试
什么是单元测试:就是针对最小的单位进行测试代码和正确性测试
junit单元测试框架的有点:可以灵活的编写测试代码,可以针对某个方法进行测试也支持一件完成全部方法的自动化测试,且各自独立
junit使用流程
1,使用java导入Junit的jar包
2,建立一个公开,无参,无返回值的参数
3,测试之前声明Test注解
4,开始测试
例如我们有个类StringUtil,内有方法printNumber
然后我们这时候建立一个 类StringUtilTest写方法testprintNumber
StringUtil
package org.example; public class StringUtil { public static void printNumber(String name){ if (name == null){ System.out.println(0); return; } System.out.println("名字的长度是:"+name.length()); } }
StringUtilTest
package org.example; import org.junit.Test; public class StringUtilTest { @Test // 测试方法 public void testPrintNumber(){ StringUtil.printNumber("admin"); StringUtil.printNumber(null); } }
即可开始进行测试
自动化测试
由于junit优秀的断言机制,我们可以利用断言进行断点测试
添加方法
public static Integer getNumber(Integer num){ return num; } //当我们传入什么参数即可返回指定的参数值
@Test public void testGetNumber() { int result = StringUtil.getNumber(5); System.out.println(result); Assert.assertEquals("方法有bug",4,result); }
//Assert.assertEquals 第一个参数填入报错信息,第二个参数填入我们预测的值,第三个参数填结果,很显然结果是错误的
java.lang.AssertionError: 方法有bug
Expected :4
Actual :5
junit常用注解
@Test //测试类当中的方法必须修饰才能称为测试方法才能启动执行
@Before //用于修饰一个实例方法该方法会在每一个执行方法之前执行依次
@After //用于修饰一个实例方法该方法会在每一个执行方法之后执行依次
@BeforeClass //用于修饰一个静态方法,该方法会在所有测试方法之前只执行一次
@AfterClass //用于修饰一个静态方法,该方法会在所有测试方法之后只执行一次