Junit框架使用(1)–基本使用

释放双眼,带上耳机,听听看~!

        JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

        JUnit是Java开发中使用最多的测试框架之一。

        本系列文章讲的所有内容都是基于Maven3+JUnit4.11,要使用JUnit只需要将JUnit的jar包引入到项目中即可。

首先写要测试的类


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1package com.tiamaes.junit;
2
3import java.util.regex.Matcher;
4import java.util.regex.Pattern;
5
6/**
7 * @author 王成委
8 *
9 */
10public class WordDealUtil {
11 
12  /**
13   * 将Java对象名称格式化成数据库格式
14   * @param name Java对象名称
15   * @return
16   */
17 
18  public static String wordFomat4DB(String name){
19     
20     
21      Pattern p = Pattern.compile("[A-Z]");
22      Matcher m = p.matcher(name);
23      StringBuffer sb = new StringBuffer();
24     
25      while(m.find()){
26          System.out.println(m.group());
27          m.appendReplacement(sb, "_"+m.group());
28      }
29     
30      return m.appendTail(sb).toString().toUpperCase();
31  }
32}
33
34

1
2
1下面写测试用例
2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
1package com.tiamaes.junit;
2
3import static org.junit.Assert.*;
4
5import org.junit.Test;
6/**
7 * WordDealUtil测试用例
8 * @author 王成委
9 *
10 */
11public class WordDealUtilTest {
12
13  /**
14   * 正常情况
15   */
16  @Test
17  public void testWordFomat4DB() {
18      String target = "employeeInfo";
19      String result = WordDealUtil.wordFomat4DB(target);
20      assertEquals("EMPLOYEE_INFO", result);
21  }
22 
23  /**
24   * 参数为null
25   */
26  @Test
27  public void wordFormat4DBNull(){
28      String result = WordDealUtil.wordFomat4DB(null);
29      assertNull(result);
30  }
31 
32  /**
33   * 空字符串
34   */
35  @Test
36  public void wordFormat4DBEmpty(){
37      String result = WordDealUtil.wordFomat4DB("");
38      assertEquals("", result);
39  }
40 
41  /**
42   * 首字母大写
43   */
44  @Test
45  public void wordFormat4DBBegin(){
46      String target = "EmployeeInfo";
47      String result = WordDealUtil.wordFomat4DB(target);
48      assertEquals("EMPLOYEE_INFO", result);
49  }
50 
51  /**
52   * 尾字母大写
53   */
54  @Test
55  public void wordFormat4DBEnd(){
56      String target = "EmployeeInfoA";
57      String result = WordDealUtil.wordFomat4DB(target);
58      assertEquals("EMPLOYEE_INFO_A", result);
59  }
60 
61  /**
62   * 多个大写字母相连
63   */
64  public void wordFormat4DBTogether(){
65      String target = "EmployeeAInfo";
66      String result = WordDealUtil.wordFomat4DB(target);
67      assertEquals("EMPLOYEE_A_INFO", result);
68  }
69
70}
71
72

1
2
1测试方法只需在方法上加上@Test注释就可以了,assertEquals方法有两个参数第一个是期望值,第二个是实际结果。  
2

运行测试用例之后发现wordFormat4DBNull和wordFormat4DBBegin方法失败,即空参数和首字母大写的没有通过测试,然后修改方法,加上null判断和首字母大写判断,如下


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1   /**
2    * 将Java对象名称格式化成数据库格式
3    * @param name Java对象名称
4    * @return
5    */
6   public static String wordFomat4DB(String name){
7      
8       /**********************************************/
9       if(name == null) return null;
10      /**********************************************/
11     
12      Pattern p = Pattern.compile("[A-Z]");
13      Matcher m = p.matcher(name);
14      StringBuffer sb = new StringBuffer();
15     
16      while(m.find()){
17          /**********************************************/
18          if(m.start() != 0) {
19              m.appendReplacement(sb, "_"+m.group());
20          };
21          /**********************************************/
22      }
23     
24      return m.appendTail(sb).toString().toUpperCase();
25  }
26

1
2
1再运行测试用例,这次测试通过,现在的代码已经比较稳定,可以提供给其他模块使用了。如果对此方法进行了修改或优化,只需要运行一次测试用例就可以知道方法是否正常。
2

在写测试用例时要尽量考虑到业务中可能出现的情况,是测试用例更加完善。

给TA打赏
共{{data.count}}人
人已打赏
安全经验

职场中的那些话那些事

2021-9-24 20:41:29

安全经验

Apache日志分析

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索