JavaWeb-1.1【基础加强:Junit单元测试】

JavaWeb-1.1【基础加强:Junit单元测试】

 

 JavaWeb-1.1【基础加强:Junit单元测试】

 

 

 1 package com.yubaby.junit;
 2 
 3 /**
 4  * 计算器类
 5  */
 6 public class Calculator {
 7 
 8     /**
 9      * 加法
10      * @param a
11      * @param b
12      * @return
13      */
14     public int add(int a, int b){
15 //        int i = 3 / 0; //JUnit测试类运行时,控制台变红,说明被测程序有异常
16 
17         return a + b;
18 
19 //        return a - b;
20     }
21 
22     /**
23      * 减法
24      * @param a
25      * @param b
26      * @return
27      */
28     public int sub(int a, int b){
29         return a - b;
30     }
31 }
 1 package com.yubaby.junit;
 2 
 3 /**
 4  * 传统手工测试
 5  * 弊端是不够灵活
 6  */
 7 public class CalculatorTest {
 8     public static void main(String[] args) {
 9         //创建计算器类对象
10         Calculator c = new Calculator();
11 
12         //调用加减法进行测试
13         int result = c.add(1, 2);
14         System.out.println(result);
15 
16         result = c.sub(1, 2);
17         System.out.println(result);
18     }
19 }
 1 package com.yubaby.test;
 2 
 3 import com.yubaby.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 1 Junit单元测试
11     * 测试分类:
12         1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
13         2. 白盒测试:需要写代码的。关注程序具体的执行流程。
14 
15     * Junit使用:白盒测试
16         * 步骤:
17             1. 定义一个测试类(测试用例)
18                 * 建议:
19                     * 测试类名:被测试的类名Test        CalculatorTest
20                     * 包名:xxx.xxx.xx.test        cn.itcast.test
21 
22             2. 定义测试方法:可以独立运行
23                 * 建议:
24                     * 方法名:test测试的方法名        testAdd()
25                     * 返回值:void
26                     * 参数列表:空参
27 
28             3. 给方法加@Test
29             4. 导入junit依赖环境
30 
31         * 判定结果:
32             * 红色:失败
33             * 绿色:成功
34             * 一般我们会使用断言操作来处理结果
35                 * Assert.assertEquals(期望的结果,运算的结果);
36 
37         * 补充:
38             * @Before:
39                 * 修饰的方法会在测试方法之前被自动执行
40             * @After:
41                 * 修饰的方法会在测试方法执行之后自动被执行
42  */
43 /**
44  * JUnit测试类
45  */
46 public class CalculatorTest {
47 
48     /**
49      * 测试add方法
50      */
51     @Test //添加该注解后,该测试方法可以独立运行,而不需要main();注解依赖添加方法:左侧红灯泡提示,点击add Junit4 to classpath,弹框点ok
52     public void testAdd(){
53 //        System.out.println("testAdd()被执行了");
54 
55         Calculator c = new Calculator();
56         System.out.println(c.add(1,2)); //被测程序逻辑错误时,并不能从控制台的红色或绿色来判断被测程序是否有问题,故应使用断言来测试
57         System.out.println(c.sub(1, 2));
58 
59         //Assert类,断言
60         int result = c.add(1,2);
61         Assert.assertEquals(3, result); //断言结果为3,与被测程序输出结果对比
62         //断言:成功不输出,失败输出问题
63     }
64 
65     /**
66      * 测试sub方法
67      */
68     @Test
69     public void testSub(){
70         System.out.println("testSub()");
71 
72         Calculator c = new Calculator();
73         Assert.assertEquals(-1, c.sub(1, 2));
74     }
75 
76     /**
77      * 初始化方法
78      * 用于资源申请等,比如重复的IO流创建等
79      * 所有测试方法在执行之前都会自动先执行该方法
80      */
81     @Before
82     public void init(){
83         System.out.println("init()");
84     }
85 
86     /**
87      * 释放资源放啊
88      * 所有测试方法在执行之后都会自动执行该方法
89      */
90     @After
91     public void close(){
92         System.out.println("close()");
93     }
94 }

 

上一篇:spring测试从application.properties获取自定义属性


下一篇:junit单元测试的使用