1.1 Junit是什么
Junit是Java语言编写的第三方单元测试框架
1.2 单元测试概念
- 单元:在Java中,一个类就是一个单元
- 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行功能测试或业务逻辑测试。
1.3 Junit单元测试框架的作用
用来对类中的方法功能进行有目的的测试,以保证程序的正确性和稳定性。
能够让方法独立运行起来。
1.4 Junit单元测试框架的使用步骤
编写业务类,在业务类中编写业务方法。比如增删改查的方法
编写测试类,在测试类中编写测试方法,在测试方法中编写测试代码来测试。
测试类的命名规范:以Test开头,以业务类类名结尾,使用驼峰命名法
每一个单词首字母大写,称为大驼峰命名法,比如类名,接口名...
从第二单词开始首字母大写,称为小驼峰命名法,比如方法命名
比如业务类类名:ProductDao,那么测试类类名就应该叫:TestProductDao
测试方法的命名规则:以test开头,以业务方法名结尾
比如业务方法名为:save,那么测试方法名就应该叫:testSave
1.5 测试方法注意事项
- 必须是public修饰的,没有返回值,没有参数
- 必须使注解@Test修饰
1.6 如何运行测试方法
- 选中方法名 --> 右键 --> Run '测试方法名' 运行选中的测试方法
- 选中测试类类名 --> 右键 --> Run '测试类类名' 运行测试类中所有测试方法
- 选中模块名 --> 右键 --> Run 'All Tests' 运行模块中的所有测试类的所有测试方法
1.7 如何查看测试结果
- 绿色:表示测试通过
- 红色:表示测试失败,有问题
1.8 Junit常用注解(Junit4.xxxx版本)常用于初始化对象赋值
- @Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
- @After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
- @BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
- @AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次。
1.9 Junit常用注解(Junit5.xxxx版本)
- @BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
- @AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
- @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
- @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。
1.10 Junit的使用
- 示例代码
/**
业务类:实现加减乘除运算
*/
public class Cacluate {
/*
业务方法1:求a和b之和
*/
public int sum(int a,int b){
return a + b + 10;
}
/*
业务方法2:求a和b之差
*/
public int sub(int a,int b){
return a - b;
}
}
public class TestCacluate {
static Cacluate c = null;
@BeforeClass // 用来静态修饰方法,该方法会在所有测试方法之前执行一次。
public static void init(){
System.out.println("初始化操作");
// 创建Cacluate对象
c = new Cacluate();
}
@AfterClass // 用来静态修饰方法,该方法会在所有测试方法之后执行一次。
public static void close(){
System.out.println("释放资源");
c = null;
}
/* @Before // 用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
public void init(){
System.out.println("初始化操作");
// 创建Cacluate对象
c = new Cacluate();
}
@After // 用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
public void close(){
System.out.println("释放资源");
c = null;
}*/
@Test
public void testSum(){
int result = c.sum(1,1);
/*
断言:预习判断某个条件一定成立,如果条件不成立,则直接奔溃。
assertEquals方法的参数
(String message, double expected, double actual)
message: 消息字符串
expected: 期望值
actual: 实际值
*/
// 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。
Assert.assertEquals("期望值和实际值不一致",12,result);
System.out.println(result);
}
@Test
public void testSub(){
// 创建Cacluate对象
// Cacluate c = new Cacluate();
int result = c.sub(1,1);
// 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。
Assert.assertEquals("期望值和实际值不一致",0,result);
System.out.println(result);
}
}
版权归原作者 YounG_photograph 所有, 如有侵权,请联系我们删除。