单元测试:复利计算

 对我们和复利计算程序,写单元测试。 

   有哪些场景?

   期待的返回值

   写测试程序。

   运行测试。

测试模块

测试输入

预期结果

运行结果

bug跟踪

计算终值

(本金,年限,利率)

终值

   

1

(1000000, 30, 0.03)

2427262.471189663

 

2

(-1000000, 30, 0.03)

弹出提示:请输入>0的本金

3

(1000000, -30, 0.03)

弹出提示:请输入>0的存钱年数

4

(1000000, 30, -0.03)  弹出提示:请输入>0的利率  √  
5  (1000000, 30, 3)  弹出提示:请输入<1的利率  √  

计算本金

(年限,利率,终值)

         本金

   

1

(30, 0.03,3000000)

1235960.278547719

 

一、测试用户的合法输入和非法输入:

@Test
    public void testInput0(){//合法输入
        Calculate5 a = new Calculate5();
        boolean result = a.Input(1000000, 30, 0.03);
        Assert.assertEquals(true,result);        
    }
    @Test
    public void testInput1(){//非法输入,本金是负数
        Calculate5 a = new Calculate5();
        boolean result = a.Input(-1000000, 30, 0.03);
        Assert.assertEquals(false,result);    
    }
    @Test
    public void testInput2(){//非法输入,存钱年数是负数
        Calculate5 a = new Calculate5();
        boolean result = a.Input(1000000, -30, 0.03);
        Assert.assertEquals(false,result);    
    }
    @Test
    public void testInput3(){//非法输入,利率是负数
        Calculate5 a = new Calculate5();
        boolean result = a.Input(1000000, 30, -0.03);
        Assert.assertEquals(false,result);    
    }
    @Test
    public void testInput4(){//非法输入,利率大于一
        Calculate5 a = new Calculate5();
        boolean result = a.Input(1000000, 30, 3);
        Assert.assertEquals(false,result);    
    }

二、测试计算公式是否正确:

@Test
    public void test0() {//测单利终值
        double money=1000000.0;
        int years=30;
        double r=0.03;
        double sum;
        sum = money + money * years * r;
         Assert.assertEquals(1900000,sum, 1.0);
System.out.println("单利终值为:" + sum);
}
    @Test
    public void test1(){//测复利终值
        double money=1000000.0;
        int years=30;
        double r=0.03;
        double N=1;
        double sum;
        for (int i = 1; i <= years; i++) {
            N = (1 + r) * N;
        }
        sum = N * money;
        Assert.assertEquals(2427262,sum, 1.0);
System.out.println("
复利终值为:" + sum);
    }
    @Test
    public void test2(){//测本金
         double N = 1, money;
         double sum=3000000;
         int years=30;
         double r=0.03;
         for (int i = 1; i <= years; i++) {
             N = (1 + r) * N;
         }
         money = sum / N;
         Assert.assertEquals(1235960,money, 1.0);
System.out.println("
应投入的本金为:" + money);
    }

原文地址:https://www.cnblogs.com/88mei/p/5332628.html