程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JBuilder2005單元測試之業務類介紹

JBuilder2005單元測試之業務類介紹

編輯:關於JAVA

為了便於講解,擬通過兩個簡單的業務類引出測試用例,一個是分段函數類,另一個是字符串處理類,在這節裡我們先來熟悉這兩個業務類。

  

  分段函數類

  

  分段函數Subsection類有兩個函數,sign()是一個符號函數,而getValue(int d)函數功能如下:

  

  當d < -2時,值為abs(d);

  

  當-2≤d<2 且d!=0時,值為d*d;

  

  當d=0時,值為100;

  

  當2≤d時,值為d*d*d。

  

  其代碼如下圖所示:

  

  代碼清單 錯誤!文檔中沒有指定樣式的文字。分段函數

  

  1. package chapter25;

  2.

  3. public class Subsection

  4. {

  5.  public static int getValue(int d) {

  6.   if (d == 0) {

  7.    return 100;

  8.   } else if (d = -2 && d = 2

  13.   // if (d > 32) {

  14.   // return Integer.MAX_VALUE;

  15.   // }

  16.   return d * d * d;

  17.  }

  18. }

  19.

  20. public static int sign(double d) {

  21.  if (d 0) {

  24.   return 1;

  25.  } else {

  26.   return 0;

  27.  }

  28. }

  29. }

  

  在getValue()方法中,當d>32時,d*d*d的值將超過int數據類型的最大值(32768),所以當d>32時,理應做特殊的處理,這裡我們特意將這個特殊處理的代碼注釋掉(第13~15行),模擬一個潛在的Bug。

  

  字符串處理類

  

  由於標准JDK中所提供的String類對字符串操作功能有限,而字符串處理是非常常用的操作,所以一般的系統都提供了一個自己的字符串處理類。下面就是一個字符串處理類,為了簡單,我們僅提供了一個將字符串轉換成數組的方法string2Array(),其代碼如下所示:

  

  代碼清單 錯誤!文檔中沒有指定樣式的文字。字符串處理類

  

  1. package chapter25;

  2. public class StringUtils

  3. {

  4.  public static String[] string2Array(String str, char splitChar, boolean trim) {

  5.   if (str == null) {

  6.    return null;

  7.   } else {

  8.    String tempStr = str;

  9.    int arraySize = 0; //數組大小

  10.   String[] resultArr = null;

  11.   if (trim) { //如果需要刪除頭尾多余的分隔符

  12.    tempStr = trim(str, splitChar);

  13.   }

  14.   arraySize = getCharCount(tempStr, splitChar) + 1;

  15.   resultArr = new String[arraySize];

  16.   int fromIndex = 0, endIndex = 0;

  17.   for (int i = 0; i < resultArr.length; i++) {

  18.    endIndex = tempStr.indexOf(splitChar, fromIndex);

  19.    if (endIndex == -1) {

  20.     resultArr[i] = tempStr.substring(fromIndex);

  21.     break;

  22.    }

  23.    resultArr[i] = tempStr.substring(fromIndex, endIndex);

  24.    fromIndex = endIndex + 1;

  25.   }

  26.   return resultArr;

  27.  }

  28. }

  29.

  30.  //將字符串前面和後面的多余分隔符去除掉。

  31. private static String trim(String str, char splitChar) {

  32.  int beginIndex = 0, endIndex = str.length();

  33.  for (int i = 0; i 0; i--) {

  40.   if (str.charAt(i - 1) != splitChar) {

  41.    endIndex = i;

  42.    break;

  43.   }

  44.  }

  45.  return str.substring(beginIndex, endIndex);

  46. }

  47.

  48. //計算字符串中分隔符中個數

  49. private static int getCharCount(String str, char splitChar) {

  50.  int count = 0;

  51.  for (int i = 0; i < str.length(); i++) {

  52.   if (str.charAt(i) == splitChar) {

  53.    count++;

  54.   }

  55.  }

  56.  return count;

  57. }

  58. }

  

  除對外API string2Array()外,類中還包含了兩個支持方法。trim()負責將字符前導和尾部的多余分隔符刪除掉(第31~46行);而getCharCount()方法獲取字符中包含分隔符的數目,以得到目標字符串數組的大小(第49~57行)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved