关于MATHAPP的测试

这是我个人的单元测试博客仅供参考,想了解更全面的信息可请见我们团队的博客http://www.cnblogs.com/xjy-gg/p/5422868.html
首先,从世界那里下载adt-bundle-windows-x86_64-20131030androi(这里分32位还是64),解压,运行它的ANDROIOD.manager。它会自己安装eclisepe环境下所需的android条件所需要的包。打开elsiepe后,它会自己要求安装该SDK,之后,我们就会神奇地发现在import项目的界面下,gerenel多了android选项;如图:
这时候,导入android项目就好,那么这时候,如何解决无法导入import.java.*的问题呢,这个时候,我们可以又见该APP项目,点JAVA BUILD PATH->ADD LIBRARY
->JRE SYSTEM LIBRARY ,导入即可,如图:
 
APP的单元测试:
在这里我们测试选出基于该程序源代码中具有代表性的代码进行单元测试,计算公约数的方法setNumeratorAndDenominator(int a, int b)。
在这里我们新建了一个测试类与被测试类
int setNumeratorAndDenominator(int a, int b){  // 设置分子和分母
            int c = f(Math.abs(a),Math.abs(b));         // 计算最大公约数
           int  numerator = a / c;
            int denominator = b / c;
            if(numerator<0 && denominator<0){
               numerator = - numerator;
              denominator = - denominator;
              
            }
            return c;
          }
     int f(int a,int b){  // 求a和b的最大公约数
            if(a < b){
              int c = a;
              a = b;
              b = c;
            }
            int r = a % b;
            while(r != 0){
              a = b;
              b = r;;
              r = a % b;
            }
            return b;
          }

该被测试类的值返回给测试类c值以测试

public void textone()
{
    
        double sum;
        sum=cal.setNumeratorAndDenominator(3, 6);
    Assert.assertEquals("错误 ",sum,3,0);
    

}

如图,3和6的公约数是3,因此它显示正确(没错误)。如果写的是2,它会显示有错误。

 而在把分母改为0的情况下,它也会有错误,显示BU ZERO .
 
最后,我们测试无论其值如何它是否有响应的问题,显然,无论值为0或者其他任何数显示有错误,该程序都是有响应的,可见其是个可持续的响应的程序
@Test(expected=ArithmeticException.class)
    public void textoneException()
    {
        int sum;
        sum=cal.setNumeratorAndDenominator(2, 8);
    Assert.assertEquals("有错误 ",sum,2.0,0);
        
    }
    
    @Test(timeout=200)
    public void time(){
    
    double sum=cal.setNumeratorAndDenominator(2, 8);
    Assert.assertEquals("有错误 ",sum,1600000.0,0);
    
}

}

  

 
 
 
原文地址:https://www.cnblogs.com/bestmoment/p/5422850.html