zoukankan      html  css  js  c++  java
  • 单元测试:复利计算

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

       有哪些场景?

       期待的返回值

       写测试程序。

       运行测试。

    测试模块

    测试输入

    预期结果

    运行结果

    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);
        }

  • 相关阅读:
    总结
    设置导航栏上面的内容
    统一所有控制器导航栏左上角和右上角内容
    直接设置UIView的x,y,width,height...
    block浅析
    const浅析
    - (BOOL)isEqual:(id)object
    数据存入沙盒
    swift感悟2
    swift自学感悟1
  • 原文地址:https://www.cnblogs.com/88mei/p/5332628.html
Copyright © 2011-2022 走看看