单元测试
? 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()
- 返回一个随机数字
- 操作符——operator()
性能调优
优化前效能分析截图
性能瓶颈
- 代码冗余,繁杂
- 代码内的个方法块互相依赖性较高,不利于以后扩展
优化方案
- 将重复的代码重构成一个方法,减少资源重复
- 将代码块重新封装,减少依赖性
优化后效能分析截图
总结
- 感觉自己腰间盘突出了,至诚的朝阳好好看啊,我要睡了,晚安?