单元测试@Test
单元测试概念
*单元:在Java中,一个类、一个方法就是一个单元
* 单元测试:程序员编写的一小段代码,用来对某个类中的某个方法进行功能测试或业务逻辑测试。
Junit单元测试框架的作用
* 用来对类中的方法功能进行有目的的测试,以保证程序的正确性和稳定性。
* 能够让方法独立运行起来。
测试方法注意事项
1必须要以public修饰 且无返回值无参数
2要以@Test开头
Juint4中的常用注解
@Before:在每个单元测试执行前执行一遍(有多少个单元测试就执行多少遍)
@After:在每个单元测试执行后执行一遍(有多少个单元测试就执行多少遍)
@BeforeClass用来修饰静态方法,在所有单元测试前执行一遍(执行性一遍)
@AfterClass:用来修饰静态方法,在所有单元测试执行后执行一遍(执行一次
Juint4代码演示
/** 业务类:实现加减乘除运算 */ 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; } } p ublic 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); } }
Junit常用注解(Junit5.x版本)
* @BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
* @AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
* @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
* @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。