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 }
测试结果:和预测结果一致!