211606349 蔡晨旸 211606369 蔺皓雯

一.单元测试

- 需求分析
   - 要求熟悉对插件Junit,eclemma,以及PMD的使用

- 测试要求
   - Junit测试代码编写命名规范
   - Junit自动生成测试类的命名如下:被测试的业务+Test、被测试的接口+Test、被测试的类+Test
   - 类的名字必须由大写字母开头而单词中的其他字母均为小写;
   - 若需要测试业务MobileBind ,那么命名就是TestMobileBind
   - 若需要测试接口GetMobileBind ,那么命名就是TestGetMobileBind
   - 若需要测试类SetMobileBind.class,那么命名就是TestSetMobileBind
   - 写出测试类代码,将结构优化,运行单元测试。
   - 提高代码的模块化程度,方便写出测试类代码,使得代码可以执行。
   - 将结构优化重构,使得代码去繁从简,提高运行效率。

关键代码

private static void Exam(int range,int grade) throws Exception {
        int i,n;
        for( i = 0;i < range;i++) {
            n=5+(int)(Math.random()*3);
            if(n%2 == 0)
                n++;
            Character[] infixExpression = new Character[n];
            char[] str = new char[(n-1)/2];
            //操作符数
            char c ;
            infixExpression[n-1] = c = Operator[(int)(Math.random()*4)];
            for(int j = 1,k = n-2;j<(n-1)/2;j++,k--) {
                infixExpression[k] = Operator[(int)(Math.random()*4)];
                c ^= infixExpression[k].charValue();
                }
                
                if(c == 0) {
                    int q = (int)(Math.random()*4);
                    infixExpression[n-1] = Operator[q] != infixExpression[n-1].charValue() ? Operator[q] : Operator[(q+1)%4];
                }
                
                try {
                    Topic[i].append("(" + (i+1) + ")");
                    Answer[i].append("(" + (i+1) + ")");
                    int result= CalPoland(infixExpression,i,str);
                    Topic[i].append(System.lineSeparator());
                    Answer[i].append(" = " + result);
                    if(i != range - 1){
                        Answer[i].append(System.lineSeparator());
                    }
                }
                catch (Exception e) {
                    // 抛出异常
                    Topic[i].setLength(0);
                    Answer[i].setLength(0);
                    i--;
                }
            }
        }
   - 首先之前代码的很多问题没有得到解决,关于加括号的问题一直没想明白,而这次的测试代码也总是报错。

二、结构优化(重构)

   - 常遇到的几种问题:大量的传参: 一些方法跟另一些方法进行交互,或者调用另一些方法的时候传入大量的参数。
   - 经常会使用一些具有明确含义的常量值,但没有给它们赋予合适的常量变量。

UML类图

流程图

三、性能调优

 - 看完视频,仿照视频中的方法撰写代码,产生了许多错误。经过多次修改,方法依旧有误。知道这个是不正确的,故还在摸索正确的结果。

posted on 2018-09-30 13:10  蔡晨旸  阅读(99)  评论(0编辑  收藏  举报