运行环境: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时:
封装测试结果: