JUnit4在复利计算器中的应用

mvc,在我的程序中,m是Util.java(用来存储传输的数据),v是index.jsp,c是Servlet.java

我在输入界面就已经对用户输入数据时,进行了检测其输入是否合法,不符合要求并提示其重新输入,如下图:

先对输入数据检测,并提示修改,在点击“得到答案”时,通过弹框对其拦截,确保数据安全。

所以,我的用于计算的javabean并没有对传入数据的检测盒排错功能,因为传入的数据是安全的,当然也要对其进行相应的检测。

复利计算器的计算功能,我是在CalculatorBean中实现的。

 

主要的方法是:public String calculate(String numP,String numI,String numN,String numF,String way);

 

/*
* 方法原型:CalculatorBean.calculate(numP, numI, numN, numF, way)
* numP是本金
* numI是年利率
* numN是存入年限
* numF是终值
* way 是指计算方法,知3求1。。。。。1是求终值 0是求本金 2是求年利率 3是求年限
* return 所求项的答案
* */

 

JUnit单元测试工具的运用:

 1 @Test
 2     //对正常情况的检测
 3     //不会抛出任何异常
 4     public void testCalculate(){
 5         CalculatorBean c=new CalculatorBean();
 6         int answer=Integer.valueOf(c.calculate("1", "2", "3", "", "1"));
 7         assertThat(answer,is(27));
 8     }
 9     
10     @Test (expected=java.lang.NumberFormatException.class)
11     //对没输入情况的检测
12     //抛出NumberFormatException,数字格式异常
13     public void testCalculate1(){
14         CalculatorBean c=new CalculatorBean();
15         int answer0=Integer.valueOf(c.calculate("", "2","3", "27","1"));
16         int answer1=Integer.valueOf(c.calculate("1", "", "3", "", "1"));
17         int answer2=Integer.valueOf(c.calculate("", "2", "", "", "1"));
18         int answer3=Integer.valueOf(c.calculate("1", "2", "", "", "1"));
19         assertThat(answer0,is(27));
20         assertThat(answer1,is(27));
21         assertThat(answer2,is(27));
22         assertThat(answer3,is(27));
23     }
24 
25     @Test (expected=java.lang.NullPointerException.class)
26     //对没输入情况的检测
27     //抛出NullPointerException,空指针异常
28     public void testCalculate2(){
29         CalculatorBean c=new CalculatorBean();
30         int answer0=Integer.valueOf(c.calculate(null, "2", "3", "", "1"));
31         int answer1=Integer.valueOf(c.calculate("1", null, "3", "", "1"));
32         int answer2=Integer.valueOf(c.calculate("1", "2", null, "", "1"));
33         int answer3=Integer.valueOf(c.calculate("1", "2", "3", "", null));
34         int answer4=Integer.valueOf(c.calculate("1", "2", "3", null, "1"));
35         assertThat(answer0,is(27));
36         assertThat(answer1,is(27));
37         assertThat(answer2,is(27));
38         assertThat(answer3,is(27));
39         assertThat(answer4,is(27));
40     }

 

 测试结果:和预测结果一致!

  

posted @ 2016-03-28 16:06  huangmp  阅读(205)  评论(0编辑  收藏  举报