上一篇介绍了常见springboot项目测试常用框架,这篇文章我们正式开始入门Springboot测试,笔者当前工作中的springboot版本主要是1.x,以下会主要以springboot 1.x版本对应的框架版本进行讲解。
Junit 4 单元测试
Junit是Java单元测试核心引擎,是每一个测试启动入口。学习Junit最主要的是掌握下面几个常用注解
@Test | 将当前方法标记为测试 @Test(timeout=1000) 设置测试时长 @Test(expected = Exception.class) 设置当前测试会抛出的异常,当前测试为异常测试 |
@BeforeClass | 当前测试类的启动方法,在当前类实例化时会运行一次,类似初始化 |
@Before | 当前测试类每一个测试方法运行前都会运行一次 |
@AfterClass | 测试类所有测试结束后,会运行一次,类似终止程序,通常会将数据库清除,线程关闭等清理工作放到这个方法中 |
@After | 每一个测试方法运行结束后都会运行一次 |
@Ignore | Maven Build的时候会忽略这个测试方法/测试类 |
测试中我们还需要比对实际输出和理想输出结果,Java采用断言Asset的方式进行检测,Asset的基本类型
assertEquals | 验证给定数值是否相等 |
assertTrue | 验证给定布尔量是否为真 |
assertNull | 验证给定结果是否为Null |
assertSame | 验证给定结果是否是同一个对象 |
fail | 抛出Assertion Error用于检测异常 |
创建一个测试,只要在方法上标注@Test JUNIT会自动默认该方法是测试方法,并且可以通过加入断言来进行输出结果检验
public class Test {
@Test
public void testCase1() {
System.out.println("This is Test");
}
@Test(expected = Exception.class)
public void testCase1() {
int i = 1/0;
System.out.println("This is Test");
}
@Test
public void testCase2() {
int val = 2;
Assert.assertEquals(val, 2);
}
@Before
public void beforeSetUp() {
System.out.println("before test");
}
@After
public void afterSetUp() {
System.out.println("Finish");
}
@BeforeClass
public static void beforeClass() {
System.out.println("before all");
}
}
================== 运行结果 ====================
before all
before test
This is Test
Finish
这样就实现了最简单的测试。这就是JUNIT单元测试的基本实现,当然JUNIT不仅仅可以进行单元测试,集成测试以及功能性测试都可以使用JUNIT。下一篇介绍如果利用JUNIT进行springboot项目测试。