测试与优化
一.单元测试
1. 设计思路
-
分析自己的程序,都有哪些输出情况,针对每种情况设计测试代码;
-
首先找出有返回值的进行测试,在判断没有返回值的都是什么问题;
2. 例子代码
public class MathExamTest {
@Test
public void testCalculate1() {
asssertEquals(5, new MathExam().Calculate(8-3));
}
@Test
public void testCalculate2() {
assertEquals(28, new MathExam().Calculate(20+3*3-1));
}
}
3. 测试要求
-
在测试中必须使用@Test修饰
-
必须使用public void进行修饰,不能带任何参数
-
测试类的包应该和被测试类保持一致
-
测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
4. 单元测试覆盖率截图
二.结构优化
1.UML类图
2.程序运行流程图
3.重构
-
重构的部分
重构了关于两个数字的计算和判断;
将生成式子的类从原先类中提取出 -
重构的原因
在原先代码里关于数字的计算判断大量重复,所以我将它生成为一个方法类与生成式子的类合并;
为了让每个类的模块与功能都更加精准,专门生成个类来生成式子以及判断 -
重构后模块功能
MathExam类(主类,自身负责生成和写入文件,以及调用其它方法类来生成式子);
Calculate类(负责三年级式子,转成中缀表达式以及后缀表达式求和)
三.性能调优
1.性能瓶颈
- 代码中存在着重复代码,有些代码无法有效的实现功能
2.优化方案
- 进行了一定量的代码缩减提取,删减某些无用或者重复的代码
3.性能调优后
- 优化后效能分析工具的结果截图