测试与优化
211606326瞿煌人 211617246张竣淇
单元测试
1.设计思路
针对每个方法,对其可能出现的每种情况都进行测试
首先创建该类对象,然后调用该对象的某方法,最后比较结果是否符合预期

2.例子代码
String[] input = new String[] {"-n", "10", "-grade", "3"};
MathExam math = new MathExam();
Method method = math.getClass().getDeclaredMethod("checkInput", String[].class);
method.setAccessible(true);
boolean result = (boolean) method.invoke(math, (Object) input);
assertEquals(true, result);
该方法测试的是参数输入正常时的情况
由于MathExam类的方法都为私有方法,所以通过反射调用方法
遇到的问题

方法的参数为数组时,invoke()传参时要将数组转换成对象否则参数不匹配
对double类型进行assert比较时,要用assertEquals(double,double,double)这个方法,其中第三个参数是允许误差。
3.单元测试覆盖率

结构优化
1.UML类图

2.运行流程图

3.重构
重构了两个部分

isNumber()方法,判断字符串是否为数字,在nibolan()方法和calc()方法均有使用
cmpOper()方法,比较两个运算符的优先级,在nibolan()方法中频繁使用
性能调优
1.性能调优前

2.性能瓶颈
在表达式转换和计算时大量使用isNumber()方法判断字符串是否为数字

3.优化方案
改为用正则表达式进行判断

4.性能调优后

转载于:https://www.cnblogs.com/huangge/p/9727907.html

第三周作业测试与优化相关推荐

  1. 20189221 2018-2019-2 《密码与安全新技术专题》第三周作业

    20189221 2018-2019-2 <密码与安全新技术专题>第三周作业 课程:<密码与安全新技术专题> 班级: 201892 姓名: 郭开世 学号:20189221 上课 ...

  2. 【中文】【吴恩达课后编程作业】Course 5 - 序列模型 - 第三周作业 - 机器翻译与触发词检测

    [中文][吴恩达课后编程作业]Course 5 - 序列模型 - 第三周作业 - 机器翻译与触发词检测 上一篇:[课程5 - 第三周测验]※※※※※ [回到目录]※※※※※下一篇:无 致谢: 感谢@e ...

  3. 【中文】【吴恩达课后编程作业】Course 2 - 改善深层神经网络 - 第三周作业

    [中文][吴恩达课后编程作业]Course 2 - 改善深层神经网络 - 第三周作业 - TensorFlow入门 上一篇: [课程2 - 第三周测验]※※※※※ [回到目录]※※※※※下一篇: [课 ...

  4. 《密码与安全新技术专题》第三周作业

    学号 2018-2019-2 <密码与安全新技术专题>第三周作业 课程:<密码与安全新技术专题> 班级: 92班 姓名:张宇翔 学号:20189211 上课教师:谢四江 上课日 ...

  5. 学号20189220 2018-2019-2 《密码与安全新技术专题》第三周作业

    学号20189220 2018-2019-2 <密码与安全新技术专题>第三周作业 课程:<密码与安全新技术专题> 班级: 1892 姓名: 余超 学号:20189220 上课教 ...

  6. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...

  7. 20189200余超 2018-2019-2 移动平台应用开发实践第三周作业

    2018-2019-2 移动平台应用开发实践第三周作业 核心类 基本类型的封装类 封装类: java语言认为一切皆对象.8个基本数据类型野应该具备对应的对象.通过封装类可以把8个基本类型的值封装对象进 ...

  8. 吴恩达深度学习-Course4第三周作业 yolo.h5文件读取错误解决方法

    这个yolo.h5文件走了不少弯路呐,不过最后终于搞好了,现在把最详细的脱坑过程记录下来,希望小伙伴们少走些弯路. 最初的代码是从下面这个大佬博主的百度网盘下载的,但是h5文件无法读取.(22条消息) ...

  9. 2017-2018-1 Java演绎法 第三周 作业

    团队任务:团队展示与选题 团队展示 队员学号及姓名 学号 姓名 主要负责工作 20162315 马军 日常统计,项目部分代码 20162316 刘诚昊 项目部分代码,代码质量测试 20162317 袁 ...

最新文章

  1. CNN 常用网络结构解析 1x1 卷积运算 示意图
  2. springMVC3学习(二)--ModelAndView对象
  3. Web页面布局方式小结
  4. OpenGL相机控制之二
  5. C/C++字节对齐总结
  6. 2019百度之星初赛1
  7. java 强制下线_【java】如何强制app端强制下线?
  8. 同步和原子性---多线程学习笔记(四)
  9. 前端学习(176):列表元素
  10. js防止双击事件触发单击事件
  11. 解决cmd中tomcat中文乱码问题
  12. 《个人信息安全规范》会让我们的信息更安全吗?
  13. 制作淘宝客微信公众号(一)
  14. 功能强大的在线网页编辑器
  15. cufflinks 绘图
  16. 统计学 计算机论文发表,数学科学学院博士生史册在统计学顶级期刊 《Annals of Statistics》上发表论文...
  17. 思科交换机-常用命令及配置
  18. source 命令解释
  19. 游戏建模师具体干什么!30岁后进入行业算不算晚?
  20. 通达oa mysql连接_安装通达OA后想使用其自带的Mysql数据库的解决方法

热门文章

  1. Flutter 接入MapBox地图
  2. 逆天挑战冰水同框?探秘美的微晶冰箱背后的智能科技
  3. Java通过串口通信实现温度监测
  4. 数商云农牧行业软硬一体化解决方案丨提高运营管控,产业链协同
  5. Windows根据TCP端口号查找进程PID再kill进程
  6. Poj 1135 Domino Effect(Dijkstra)
  7. .netcore+vue 实现压缩文件下载
  8. 2020年12月份安排与心得
  9. hutool中Convert工具类的常用方法
  10. HTML基本的一些知识以及标签的使用