该文章Github地址:https://github.com/AntonyCheng/java-notes
在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!
上一章:由浅到深认识Java语言(43):注解
49.Junit——单元测试
想要进行单元测试,需要引入两个外部 jar 包,第一个是 junit.jar ,第二个是 hamcrest-core.jar ,其中 hamcrest-core.jar 是 junit.jar 的依赖包 ,jar 包的下载地址可以使用以下网站:https://mvnrepository.com/;
下载完毕之后导入至项目 lib 文件夹下(若文件夹不存在,则需要自己搭建),然后右击 jar 包点击 As a library…… 即可导入其中内容;
Junit相关介绍
Junit是什么:
Junit是Java语言编写的第三方单元测试框架
单元测试概念:
- 单元:在Java中,一个类就是一个单元
- 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行功能测试或业务逻辑测试。
Junit单元测试框架的作用:
用来对类中的方法功能进行有目的的测试,以保证程序的正确性和稳定性,能够让方法独立运行起来。
单元测试
注意事项
- 被测试方法所存在的类权限修饰符必须是 public;
- 被测试方法权限修饰符必须是 publlic;
- 被测试方法不能包含返回值,即返回值类型为 void;
- 被测试方法不能含有参数;
- 被测试方法必须要打上 @Test 注解来修饰;
示例如下:
package top.sharehome.Test;
public class Test {
@org.junit.Test
public void TestMethod() {
System.out.println("hello java");
}
}
打印效果如下:
Junit常用注解(Junit-4.xxx版本)
-
@Test:用来修饰要测试的方法;
-
@Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
这个修饰的方法中通常会做一些全局的初始化工作;
-
@After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
这个修饰的方法中通常会做一些全局的销毁
-
@BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次,不常用;
-
@AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次,不常用
这个版本的 Junit 较为常用,所以只给出这个版本的的示例:
package top.sharehome.Test;
public class Test {
@org.junit.Before
public void Before() {
System.out.println("这个是Before注解");
}
@org.junit.After
public void After() {
System.out.println("这个是After注解");
}
@org.junit.Test
public void TestMethod() {
System.out.println("hello java");
}
}
打印效果如下:
Junit常用注解(Junit-5.xxx版本)
- @BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
- @AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
- @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
- @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。
断言
判断一个程序运行的结果是否满足我们的预期;
相关方法:
Assert 类中的 assert 系列方法:参数通常格式是期望值和实际值;
示例如下:
package top.sharehome.Project;
import org.junit.Assert;
import org.junit.Test;
public class Junit {
@Test
public void checkMethod() {
Cacluate cacluate = new Cacluate();
int sum = cacluate.sum(1, 3);
Assert.assertEquals(4, sum);
}
}
class Cacluate {
public int sum(int a, int b) {
return a + b + 10;
}
}
打印效果如下: