測試與封裝5.1

51馮美欣max發表於2015-04-30

 我的隊友是52吳舒婷,部落格內容主要是白盒黑盒的測試資料分析

我們通過簡單的四則運算來進行程式的測試與封裝

我們主要完成的是事情

(1)封裝:將運算要運用的方法進行封裝

檔案主要有三個:Calculate(存放運算要用得到方法)、CalcuTest(主要main方法)、Test(測試)

Calculate中主要的方法:Cal()運算、input()輸入、judge判斷()

 程式碼如下:CalcuTest(主要main方法)

package Test.src.src;

import java.util.Scanner;


public class CalcuTest {
    static Scanner sc = new Scanner(System.in);
    static int a=0;
    static int b=0;
    static String cc=new String();
    public static void main(String[] args) 
    {
        Calculate c1=new Calculate();
        c1.input();
        a=c1.a1;
        b=c1.b1;
        cc=c1.cc1;
        
         int total=c1.Cal(a,b,cc);
        System.out.println("計算結果是:"+total);        
        
    }
    
}
View Code

 Calculate(存放運算要用得到方法)

package Test.src.src;

import java.util.Scanner;


public class Calculate {
    
    static Scanner sc = new Scanner(System.in);
    int a1=0;
    int b1=0;
    String cc1=new String();
    static public int Cal(int a,int b,String cc)
    {
        cc=judge(cc);
        int result=0;
        
        if(cc.equals("+"))
            result=a+b;
        else if(cc.equals("-"))
            result=a-b;
        else if(cc.equals("*"))
            result=a*b;
        else if(cc.equals("/"))
            
            try{
         result=a/b;
        }catch(Exception e)//對輸入的數值進行異常處理
        {
            System.out.println("\t    除數不能為0");
        }
                 
        else 
            System.out.println("\t請輸入正確運算子!請重新執行");
         
     
            
         return result;
    }
    
    public void input()
    {
        
        try{
        System.out.println("運算子是 +,-,*,/"); 
        
        System.out.println("請輸入第一個數:");
         a1=sc.nextInt();
        System.out.println("請輸入第二個數:");
         b1=sc.nextInt();
        System.out.println("請輸入運算子:");
         cc1 = sc.next();
         
        }catch(Exception  e)
    {
        System.out.println("輸入數值出現異常");
    }
    }
    
    
    static public String judge(String cc2)
    {
        boolean a=false;
        if(cc2.equals("+") || cc2.equals("-")|| cc2.equals("*")||cc2.equals("/"))
            a=true;
        while(a==false)
        {
            
         System.out.println("\t非法運算子");
         System.out.println("請輸入運算子:");
         cc2 = sc.next();
         if(cc2.equals("+") || cc2.equals("-")|| cc2.equals("*")||cc2.equals("/"))
                a=true;
    }
        return cc2;
    }
    
}
View Code

 

(2)測試

A、進行四個運算的基本測試

B、進行除法除數不能為0的測試

C、對數的數值規範進行測試

D、對輸入的運算子是否正確的測試

 

package Test.src.src;



import static org.junit.Assert.*;

import org.junit.Test;


public class Tests {

    @Test
    public void testAdd()//測試加法基本功能
    {
        
        int result=new Calculate().Cal(3,3,"+");
        assertEquals(6,result);
    }
    
    
    @Test
    public void testSub()//測試減法基本功能
    {
        
        int result=new Calculate().Cal(6,3,"-");
        assertEquals(3,result);
    }

    @Test
    public void testMuti()//測試乘法基本功能
    {
        int result=new Calculate().Cal(3,3,"*");
        assertEquals(9,result);
    }
    
    @Test
    public void testDivi()//測試除法基本功能
    {
        int result=new Calculate().Cal(3,3,"/");
        assertEquals(1,result);
    }
    
    @Test
    public void testDiviZero()//測試除法出書不為零基本功能
    {
        Calculate c1=new Calculate();
        c1.Cal(3, 0,"/");
    }
    
    
    @Test
    public void testIlligal()//
    {
        Calculate c1=new Calculate();
        c1.input();
        
    }
    
    @Test
    public void testcalStr()//
    {
        Calculate c1=new Calculate();
        c1.Cal(3,5,"k");
        
    }


}
View Code

執行結果
測試開始:

測試運算子

測試全部

可以測試出程式基本無錯誤,有更深的錯誤會在後面在一次更新~~~

因為單元測試這邊沒什麼把握,先從簡單開始,還不敢用自己的程式來測試,終有一天會用到我自己的程式進行測試

相關文章