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

  • 相关阅读:
    NBUT 1120 Reimu's Teleport (线段树)
    NBUT 1119 Patchouli's Books (STL应用)
    NBUT 1118 Marisa's Affair (排序统计,水)
    NBUT 1117 Kotiya's Incantation(字符输入处理)
    NBUT 1115 Cirno's Trick (水)
    NBUT 1114 Alice's Puppets(排序统计,水)
    188 Best Time to Buy and Sell Stock IV 买卖股票的最佳时机 IV
    187 Repeated DNA Sequences 重复的DNA序列
    179 Largest Number 把数组排成最大的数
    174 Dungeon Game 地下城游戏
  • 原文地址:https://www.cnblogs.com/88mei/p/5332628.html
Copyright © 2011-2022 走看看