JUnit3 结合一个除法的单元测试说明Assert.fail()的用法
生活随笔
收集整理的这篇文章主要介绍了
JUnit3 结合一个除法的单元测试说明Assert.fail()的用法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
JUnit3 结合一个除法的单元测试说明Assert.fail()的用法
之前一篇博文(JUnit基础及第一个单元测试实例(JUnit3.8))介绍了用JUnit做单元测试的基本方法,并写了一个简单的类Calculator,其中包含了整型加减乘除的简单算法。
本文通过完善其中的除法和除法的单元测试来继续说明JUnit的用法。
首先完善Calculator类中的除法,在除数为零的情况下抛出一个异常:
public int divide(int a, int b) throws Exception{if(0 == b){throw new Exception("除数不能为0"); }return a / b;}
设计测试用例:
测试用例中不再抛出异常,而是使用try catch块。
首先是测试正常情况的测试用例:
public void testDivide(){int result = 0;try{result = calculator.divide(12, 3);}catch (Exception e){e.printStackTrace();// 如果抛出异常,证明测试失败,没有通过,没通过的测试计数在Failures中 Assert.fail();// 如果不加这一行,如果程序进入到catch,无法判断其失败 }// 判断方法的返回结果Assert.assertEquals(4, result);// 第一个参数是期望值,第二个参数是要验证的值 }
测试异常情况的测试用例:
public void testDivideByZero(){Throwable tx = null;int result = 0;try{result = calculator.divide(12, 2);Assert.fail("没有抛出异常,测试失败");// 如果执行到这行代码,则证明没有抛出异常,说明我们的验证失败 }catch (Exception e){e.printStackTrace();tx = e;}Assert.assertEquals(Exception.class, tx.getClass());// 抛出的异常类型是否和期望一致Assert.assertEquals("除数不能为0", tx.getMessage());// 抛出的异常信息是否和期望一致//如果上面两个都通过,则测试通过 }
此代码中故意将除数改为2,测试失败。
除数为2时的执行情况:
总结:Assert.fail()加在期望中不可能到达的地方,一旦到达,表明测试失败,结果与预期不同。
转载于:https://www.cnblogs.com/aimengying/p/3591319.html
总结
以上是生活随笔为你收集整理的JUnit3 结合一个除法的单元测试说明Assert.fail()的用法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: jquery的animate()方法也可
- 下一篇: 排序算法(四)