测试要求:
对我们和复利计算程序,写单元测试。
有哪些场景?
期待的返回值
写测试程序。
运行测试。
1.源代码:https://github.com/rongjielong/rongjielong/blob/master/calculate/src/exercise.java
2.测试代码:https://github.com/rongjielong/rongjielong/tree/master/calculate/src/test
3.测试示例:
(1)判断输入是否正确:
1 package test; 2 3 4 public class A { 5 boolean test1(int select){ 6 7 System.out.println("请问您想要进行单利计算还是复利计算:1.单利 2.复利"); 8 if(select != 1 && select != 2) 9 return false; 10 else 11 return true; 12 13 } 14 }
1 package test; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 8 public class ATest { 9 A a1=new A(); 10 @Before 11 public void setUp() throws Exception { 12 } 13 14 @Test 15 public void test() { 16 17 assertTrue (a1.test1(2)); 18 } 19 20 }
(2)判断数据计算是否正确:
1 package test; 2 3 public class E { 4 public double test5(double sumValue,double rate,int year){ 5 for (int i = 1; i <= year; i++) { 6 sumValue = sumValue / (1 + rate); 7 8 } 9 double originalMoney = sumValue; 10 System.out.println("需要本金" + originalMoney + "元"); 11 return originalMoney; 12 } 13 14 }
1 package test; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 8 public class ETest { 9 E e1=new E(); 10 @Before 11 public void setUp() throws Exception { 12 } 13 14 @Test 15 public void test() { 16 assertEquals(86383.76,e1.test5(100000, 0.05, 3),0.05); 17 } 18 19 }
其余测试代码详情请点击:https://github.com/rongjielong/rongjielong/tree/master/calculate/src/test
测试总结:
第一次用到Junit测试,虽然不是很了解,但是也体会到它的好处。Junit里面提供了比较多的方法,需要我们逐一揣摩。通过单元测试,我发现自己原来写的代码比较乱,没什么条理,原来的代码是将整个程序写在一个方法里,测试起来很不方便,怪不得提倡要分开java类以及提取方法的方式开发软件了,所以我在测试过程中拆分了自己原来的代码,分成了几个类以及几个方法,逐一测试。并且,在测试过程中,发现程序会发生异常,例如,int year;当我们输入浮点型数据或者英文字母或者其他的非整形数据,那么我们的实际结果就与预期结果不一致,从而引发错误。因此,单元测试的确是一个自我发现bug的好方法。
原文:http://www.cnblogs.com/57rongjielong/p/5331079.html