- 测试分类
- 黑盒测试:检测程序的每个功能是否能够正常使用。不考虑程序结构和特性,通过程序接口输入值,看能否得到期望的值。
- 白盒测试:考虑程序结构和特性,关注程序具体的执行流程。
- 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 :3Actual :-3