BugBugBugBugBugBugBugBugBugBugBugBugBugBugBug

单元测试

     😄 211606335  吴沂章
     😭 211606318  林锃寒

附一张至诚的朝阳美照(❤ ω ❤)

设计单元测试的思路

  • 对每一个方法的代码块进行测试,返回测试结果并和预期结果进行比对

  • 对源代码进行相应的重构,以适应测试代码的调用,且不影响源代码的正常运行

构造测试数据的思路

  • 通过assertEquals进行对比,可以得出测试是否成功
  • 测试要调用的方法需为public类型,否则无法测试
  • 如需调用源代码的全局变量需要将其修改为public类型
@Test
    public void testAdd() {
        
        assertEquals(4, new MathExam6335().add(2,2,1)); 
    }
    
    @Test
    public void testSub_0() {
        
        assertEquals(2, new MathExam6335().sub(2,4,1)); 
    }

    @Test
    public void testSub_1() {
        assertEquals(0, new MathExam6335().sub(2,2,1));
    }


    @Test
    public void testMul_0() {
        assertEquals(4, new MathExam6335().mul(2,2,1));
    }
    
    @Test
    public void testMul_1() {
        assertEquals(0, new MathExam6335().mul(0,2,1));
    }


    @Test
    public void testDiv_0() { 
        assertEquals("1", new MathExam6335().div(3,3,1));
    }
    
    @Test
    public void testDiv_1() {
        assertEquals("0", new MathExam6335().div(0,3,1));
    }
    
    @Test
    public void testDiv_3() {
        assertEquals("1...1", new MathExam6335().div(3,2,1));
    }
  • 测试代码的覆盖率截图

结构优化

UML类图

程序流程图

重构解析

  • 重构了3年级题目生成方法中 操作数操作符 的随机生成

  • 在代码中随机生成 操作数操作符 的地方很多,有很大的资源浪费,重构处这两处方法可以很好的改善代码的重复率

  • 重构后方法的作用:

    • 操作符——operator()

      • 返回一个随机符号
    • 操作数——operand()

      • 返回一个随机数字

性能调优

优化前效能分析截图

性能瓶颈

  • 代码冗余,繁杂
  • 代码内的个方法块互相依赖性较高,不利于以后扩展

优化方案

  • 将重复的代码重构成一个方法,减少资源重复
  • 将代码块重新封装,减少依赖性

优化后效能分析截图

总结

  • 感觉自己腰间盘突出了,至诚的朝阳好好看啊,我要睡了,晚安😴
posted @ 2018-09-30 09:37  中国制造  阅读(314)  评论(0编辑  收藏  举报