zoukankan      html  css  js  c++  java
  • the third assignment of software testing

    没有网的日子不好过,Junit4下不下来,先用androidTestCase实现一个。

    遇到了几个bug

    首先是除0问题。

    public void testDivide(){

    result=calculate.divide(5, 2);

    if(calculate.getIsError()){

    assertEquals(flag, true);

    }else{

    assertEquals(2.5, result);

    }

    double result1=calculate.divide(5, 0);

    if((flag=calculate.getIsError())){

    assertEquals(flag, true);

    }else{

    assertEquals(2.5, result1);

    }

    double result2=calculate.divide(0, 5);

    if(calculate.getIsError()){

    assertEquals(flag, true);

    }else{

    assertEquals(0, result2);

    }

    }

    我这里是这样解决的。看某一个ifelse即可。

    对于计算器来说,他应该是知道除法能不能被零,以及除完的后果的,所以我为Calculate多设置了一个变量 isError,是否出错。如果被零除,认为出错,进行setIsError操作。即先判定是否出错。是,则断言结果assertEquals(flag, true);成立。否则assertEquals(2.5, result1);得到对应结果。

    Bug2

     

    图一:一个好长的错误。

    这个当时看了好几遍,都没觉得有啥问题,害的我把数值全都变成整形,后来发现没问题,但总觉得不舒服,于是 看到了这里,然后两个数值相减小于一个很小的数,就认为他们相等,于是:

    public void testMinus(){

    double result2=calculate.minus(5,8.3);

    double expected=-3.3;

    if((expected-result2)<0.0000001){

    setIsEqual();

    }

    assertEquals(true, isEqual);

    }

    在乘法操作发现了这些:

     

    图二:1616.0可不相等。

    于是:

    public void testMultiple(){

    result=calculate.multiple(5, 3.2);

    assertEquals(16.0, result);

    }

    然后问题就基本解决完了。

    一个简单的加减乘除的测试就完成了。

    之后找到了,junit4这个jar包,通过配置只要把下载好的类库导入到文件中就可以了。(依然可以通过留邮箱的方式来获得这些开源文件,如果你找不到,或者不太愿意花点时间找的话。)

    这里就给出比较简单的加减乘除的实现方式:

    所有测试数据都是最简单的。没有做任何防护措施。

    https://github.com/bzdwdmzjsmff

    可以到这个地址下寻找相应源代码。

  • 相关阅读:
    myeclipse中代码不显示SVN版本号
    java HttpURLConnection 登录网站 完整代码
    新浪微博自动(模拟)登陆详解及实现
    java模拟Cookies登陆
    paper 53 :深度学习(转载)
    paper 52 :windows7环境下theano安装
    paper 51:图像复原
    paper 50 :人脸识别简史与近期进展
    paper 49:论文退稿?审稿人帮你总结了22个能避免的常见问题
    paper 48: Latex中如何制作参考文献
  • 原文地址:https://www.cnblogs.com/letben/p/4537057.html
Copyright © 2011-2022 走看看