JUnit单元测试基本用法

杀马特。学长 韩版系。学妹 提交于 2019-11-27 08:21:50
  • 测试分类
    • 黑盒测试:检测程序的每个功能是否能够正常使用。不考虑程序结构和特性,通过程序接口输入值,看能否得到期望的值。
    • 白盒测试:考虑程序结构和特性,关注程序具体的执行流程。
  • 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

 

 

 

 

 

 

 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!