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

  • 相关阅读:
    时间戳 时间 相互转换
    CS Academy Remove Update
    一周水题集锦 2017 9.4
    计蒜客 16877 卡牌游戏
    计蒜客 16876 韩梅梅的抽象画
    九度OJ 题目1534:数组中第K小的数字
    CS Academy Switch the Lights
    CF AIM Tech Round 4 C. Sorting by Subsequences
    CF Round 430 C. Ilya And The Tree
    CS Academy Round 44 Check DFS
  • 原文地址:https://www.cnblogs.com/88mei/p/5332628.html
Copyright © 2011-2022 走看看