测试与封装5.2-5.3

运行环境:Eclipse

结对同伴:33 王俊凯 

地址:http://www.cnblogs.com/junkaiwang/

第二阶段目标 - 通过测试程序和API 接口测试其简单的加减乘除功能。并能看到代码覆盖率。

第三阶段目标 - 通过测试程序和API 接口测试对于各种参数的支持。

对超出计算范围的数据进行处理,计算数不能超出-1000到1000,除数不能为0。

计算类:

package 软件测试;

import java.math.*;

public class Core 

{

    public int Add(int a,int b) throws Error//加法

    {

        if(a>1000||b>1000||a<-1000||b<-1000)

        {

            throw new Error("数值范围不能超出-1000到1000");

        }

        return a+b;

    }

    public int Subtraction(int a,int b) throws Error//减法

    {

        if(a>1000||b>1000||a<-1000||b<-1000)

        {

            throw new Error("数值范围不能超出-1000到1000");

        }

        return a-b;

    }

    public int multiplication(int a,int b) throws Error//减法

    {

        if(a>1000||b>1000||a<-1000||b<-1000)

        {

            throw new Error("数值范围不能超出-1000到1000");

        }

        return a*b;

    }

    public int Division(int a,int b) throws Error//除法

    {

        if(a>1000||b>1000||a<-1000||b<-1000)

        {

            throw new Error("数值范围不能超出-1000到1000");

        }

        if(b==0)

        {

            throw new Error("除数不能为0");

        }

        return a/b;

    }

}

class Error extends Exception

{

    public Error(String str)

    {

        super(str);

    }

}

程序主类:

package 软件测试;



import java.util.*;;



public class Calculate {



    public static void main(String[] args) throws Error {

        // TODO Auto-generated method stub



        Scanner sc=new Scanner(System.in);

        Core core=new Core();

        int a,b,d=0;

        long result=0;

        a=(int)(Math.random()*100);

        b=(int)(Math.random()*100);

        String c = null;

        while(d==0)

        {

            System.out.print("请输入运算符:");

            c=sc.nextLine();

            if(c.equals("+")||c.equals("-")||c.equals("*")||c.equals("/"))

            {

                d=1;

                break;

            }

            else

            {

                System.out.println("输入的运算符错误!");

            }

        }

        System.out.print("题目:"+a+""+c+""+b+"=");

        if(c.equals("+"))

        {

            result=core.Add(a, b);

            System.out.print(result);

        }

        else if(c.equals("-"))

        {

            result=core.Subtraction(a, b);

            System.out.print(result);

        }

        else if(c.equals("*"))

        {

            result=core.multiplication(a, b);

            System.out.print(result);

        }

        else if(c.equals("/"))

        {

            result=core.Division(a, b);

            System.out.print(result);

        }

    }



}

测试类:

package 软件测试;



import static org.junit.Assert.*;



import org.junit.Test;



public class CoreTest {



    Core core=new Core();

    @Test

    public void testAdd() throws Error {

        try{

            int a=core.Add(1,2);

            assertEquals(3,a);

        }

        catch(Error e)

        {

            e.printStackTrace();

        }

    }



    @Test

    public void testSubtraction() throws Error {

        try{

            int b=core.Subtraction(4,6);

            assertEquals(-2,b);

            }

        catch(Error e)

        {

            e.printStackTrace();

        }

    }



    @Test

    public void testMultiplication() throws Error {

        try

        {

            int c=core.multiplication(4,3);

            assertEquals(12,c);

        }

        catch(Error e)

        {

            e.printStackTrace();

        }

    }



    @Test

    public void testDivision() throws Error {

        //fail("Not yet implemented");

        try

        {

        int d=core.Division(12,0);

        assertEquals(3,d);

        }

        catch(Error e)

        {

            e.printStackTrace();

        }

    }



}

 

当输入的数据超出-1000到1000时:

 

测试与封装5.2-5.3

 

 

当输入的除数为0时:

 

测试与封装5.2-5.3

 

封装测试结果:

测试与封装5.2-5.3

你可能感兴趣的:(测试)