1 package ppackage; 2 import static org.junit.Assert.*; 3 4 import java.math.BigDecimal; 5 6 import org.junit.Test; 7 8 9 public class Rank { 10 11 @Test 12 public void testrank() { 13 CalcuteRank c=new CalcuteRank(); 14 try{ 15 BigDecimal answer=c.rank("5"); 16 assertEquals(120,answer.intValue()); 17 } 18 catch(FsException e) 19 { 20 System.out.println(e.getMessage()); 21 } 22 } 23 public void testfs() { 24 CalcuteRank c=new CalcuteRank(); 25 try{ 26 BigDecimal answer=c.rank("-5"); 27 } 28 catch(FsException e) 29 { 30 System.out.println(e.getMessage()); 31 } 32 } 33 public void testff() { 34 CalcuteRank c=new CalcuteRank(); 35 try{ 36 BigDecimal answer=c.rank("a"); 37 assertEquals(120,answer.intValue()); 38 } 39 catch(NumberFormatException e) 40 { 41 System.out.println(e.getMessage()); 42 } 43 catch(FsException e) 44 { 45 System.out.println(e.getMessage()); 46 } 47 } 48 49 }
1 package ppackage; 2 3 import java.math.BigDecimal; 4 import java.util.Random; 5 6 public class CalcuteRank { 7 BigDecimal rank(String a) throws FsException 8 { 9 int i,j=1,l; 10 BigDecimal k= new BigDecimal(1); 11 String []v=new String [10]; 12 if(Integer.parseInt(a)<0) 13 { 14 throw new FsException("您輸入的是"+a+",規定階乘數不能爲負數!"); 15 } 16 if(Integer.parseInt(a)==0) 17 { 18 k= new BigDecimal(1); 19 System.out.print(a+"!="); 20 System.out.print(0+"\n"); 21 } 22 else 23 { 24 for(l=0;l<10;l++) 25 { 26 v[l]=""; 27 } 28 l=0; 29 for(int f=0;f<1;f++) 30 { 31 BigDecimal.valueOf(j); 32 v[l]=a; 33 v[l]+="!"; 34 System.out.print(a+"!="); 35 do 36 { 37 k=k.multiply(BigDecimal.valueOf(j)); 38 j++; 39 40 }while(j<=Integer.parseInt(a)); 41 System.out.print(k+"\n"); 42 l++;v[l]=String.valueOf(k);l++; 43 j=1; 44 } 45 } 46 return k; 47 } 48 public static void main(String[] args) { 49 CalcuteRank aa=new CalcuteRank(); 50 String s="5"; 51 try{ 52 aa.rank(s); 53 } 54 catch(NumberFormatException e) 55 { 56 System.out.println("您輸入的是"+s+','+"規不能輸入數字之外的非法字符!"); 57 } 58 catch(FsException e) 59 { 60 System.out.println(e.getMessage()); 61 } 62 } 63 64 }
1 package ppackage; 2 public class FsException extends Exception{ 3 public FsException(String mes) 4 { 5 super(mes); 6 } 7 }
以上3條程序代碼分別是:java
一、單元測試程序;dom
二、計算階乘功能程序;ide
三、異常處理程序;單元測試
因爲在練習5.1中已經完成了四則運算的大部分功能,因此在本次練習中,就試着在練習5.1的基礎上,追加了階乘功能,而且對階乘功能進行封裝,測試等等。測試
-(1)黑盒子測試spa
測試用例輸入條件 | 輸入條件 | 有效等價類 | 無效等價類 |
輸入有效性判斷 | 5 | 5 | |
輸入錯誤負數 | -5 | l例如:5 | -5 |
輸入錯誤字符 | a | 例如:5 | a |
測試對象 | 測試說明 | 測試數據 | 測試結果 |
計算範圍 | 能計算的大小(<=100) | 100 | 93326215... |
(2)白盒子測試code
測試用例 | 用例說明 | 經過途徑 | 實際結果 |
負數處理 | 輸入(-5) | Line23-32 | 拋出異常並提示 |
非法字符處理 | 輸入(a) | Line33-47 | 拋出異常並提示 |
結果正確性處理 | 輸入(5) | Line12-22 | 120 |
(3)異常處理orm
異常說明 | 異經常使用例 | 異常反饋 | |
fsException | CalcuteRank aa=new CalcuteRank(); |
您輸入的是-5,規定階乘數不能爲負數! | |
NumberFormatException | CalcuteRank aa=new CalcuteRank(); String s="a"; aa.rank(s); |
您輸入的是a,規不能輸入數字之外的非法字符! | |
本次實驗代碼及其測試結果截圖blog
咱們SsssB團隊工做照:
本次工做照就不在個人博客中上傳啦,若是須要觀看,就歡迎進入我團隊另外一位小夥伴的博客吧,她爲本身「帶鹽」:http://www.cnblogs.com/mikky/
最後總結:
由於有了第一次實驗做爲鋪墊,因此此次實驗作起來就沒有了第一那麼困難,感受不少地方都能很容易的上手,同時也在第一次實驗的基礎上加以了完善了追加了一部分功能,及其異常處理。不過咱們的實驗仍是存在有許多不足之處,咱們團隊會再接下更加努力,一點點改進完善,讓咱們的做業作得更加好。