- 测试分类
- 黑盒测试:检测程序的每个功能是否能够正常使用。不考虑程序结构和特性,通过程序接口输入值,看能否得到期望的值。
- 白盒测试:考虑程序结构和特性,关注程序具体的执行流程。
- JUnit单元测试:
- JUnit是一个Java语言的单元测试框架。Junit测试是白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
- JUnit使用流程:
- 定义测试类
- 建议规范:类名:被测试的类名+Test; 包名:xxx.xxx.test
- 定义测试方法
- 建议规范:方法名:test+被测试的方法名;没有返回值,没有参数。
- 给方法添加@Test
- 导入JUnit
- 定义测试类
1 package com.learning.junit; 2 3 /** 4 * 创建一个计算器类 5 */ 6 public class Calculator { 7 /** 8 * 加法 9 * @param a 10 * @param b 11 * @return 12 */ 13 public int add(int a, int b) { 14 return a + b; 15 } 16 17 /** 18 * 减法 19 * @param a 20 * @param b 21 * @return 22 */ 23 public int sub(int a, int b) { 24 return a - b; 25 } 26 }
1 package com.learning.test; 2 3 import com.learning.junit.Calculator; 4 import org.junit.After; 5 import org.junit.Assert; 6 import org.junit.Before; 7 import org.junit.Test; 8 9 /** 10 *创建测试类 11 */ 12 public class CalculatorTest { 13 14 @Test 15 public void testAdd() { 16 Calculator c = new Calculator(); 17 int result = c.add(1, 2); 18 System.out.println(result); 19 } 20 21 @Test 22 public void testSub() { 23 Calculator c = new Calculator(); 24 int result = c.sub(1, 4); 25 26 //使用断言,看实际输出与预期输出是否相等 27 Assert.assertEquals(3, result); 28 } 29 30 /** 31 * @Before: 所有测试方法执行之前都会执行@Before修饰的方法 32 */ 33 @Before 34 public void init() { 35 System.out.println("初始化..."); 36 } 37 38 /** 39 * @After: 所有测试方法执行之前都会执行@After修饰的方法 40 */ 41 @After 42 public void close() { 43 System.out.println("关闭..."); 44 } 45 }
该测试类运行结果:
初始化...
3
关闭资源...
初始化...
关闭资源...
java.lang.AssertionError:
Expected :3
Actual :-3