运行环境: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时:

 

 

 

当输入的除数为0时:

 

 

封装测试结果: