Junit单元测试
1. 测试分类:
- 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
- 白盒测试:需要写代码的,关注程序的具体执行过程。
2. Junit的使用:白盒测试
-
步骤:
- 定义一个测试类(测试用例)
- 建议:
- 测试类名:被测试的类名加Test。例:CalculatorTest
- 包名:xxx.xxx.xxx.test。例:cn.itcast.test
- 建议:
- 定义测试方法:可以独立运行
- 建议:
- 方法名:test测试的方法名。例:testAdd()
- 返回值:void类型
- 参数列表:建议空参
- 建议:
- 给方法加注解:@Test
- 导入Junit的依赖
- 定义一个测试类(测试用例)
-
判定结果:
- 红色:失败
- 绿色:成功
- 一般我们使用断言操作来处理结果。
- Assert.assertEquals(期望的结果,运行的结果);
- 例:
被测试类:
package cn.itcast.junit; import org.junit.After; import org.junit.Before; /** * 计算器类 */ public class Calculator { public int add(int a, int b){ return a+b; } public int sub(int a, int b){ return a-b; } }
测试代码:
package cn.itcast.test; import cn.itcast.junit.Calculator; import org.junit.Assert; import org.junit.Test; public class CalculatorTest { @Test public void testAdd(){ //1.创建计算器对象 Calculator cal = new Calculator(); //2.调用方法 int result = cal.add(1,2); //3.断言 Assert.assertEquals(3,result); } }
-
补充:
- @Before:
- 修饰的方法会在测试方法之前被自动执行。
- @After:
- 修饰的方法会在测试方法之后被自动执行。
- 例:
package cn.itcast.test; import cn.itcast.junit.Calculator; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class CalculatorTest { /** * 初始化方法: * 用于资源申请,所有的测试方法在执行之前都会执行该方法 */ @Before public void init(){ System.out.println("init..."); } /** * 释放资源方法: * 在所有测试方法执行完后,都会自动执行该方法 */ @After public void close(){ System.out.println("close..."); } @Test public void testAdd(){ //1.创建计算器对象 Calculator cal = new Calculator(); //2.调用方法 int result = cal.add(1,2); System.out.println(result); //3.断言 Assert.assertEquals(3,result); } }
- @Before: