结对编程2——单元测试(201421123040,60,61)
2017-03-28 21:51
429 查看
由于班级人数为奇数,故我们组员有三人,分别是孙佳萱(201421123040),谷天鹏(201421123060),常昊(201421123061)
再利用一个测试模块对计算模块进行测试,测试模块使用的是php下的phpunit单元测试,ide为phpstorm
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211525936-1827137931.png)
正确输出
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211606998-1225058591.png)
通过测试
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211804358-1726767677.png)
通过命令行生成html代码覆盖率报告
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328212027639-124055628.png)
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328212711701-1211443635.png)
因为之前没有接触过单元测试,查阅了很多资料,经过很多次的修改,对单元测试中的断言有了一定的了解。
但毕竟是第一次接触,不是很熟练,自己将会多加练习。
设计较之前更加简洁清晰,更加完善了
(2) 编码规范
代码可读性较强,成员之间没有因此事产生问题
(3) 必要的注释
必要注释都有标明
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328214950826-1166477832.png)
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328215053889-420222473.png)
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170329220709733-1479690531.png)
需求分析
这次项目我们将上一次的项目四则运算中的计算模块独立出来,另写了一个独立的类。再利用一个测试模块对计算模块进行测试,测试模块使用的是php下的phpunit单元测试,ide为phpstorm
测试框架
计算模块
class Quiz { function simplify($mol, $den) { $Mol = $mol; $Den = $den; if($den == 0){ return "分母不为0"; } while ($den) { $temp = $mol % $den; $mol = $den; $den = $temp; } $temp = $mol; if ($temp != 0) { $mol = $Mol / $temp; $den = $Den / $temp; if ($den == 1) { return $mol; } else { return "$mol/$den"; } } } function getQuiz($Fra_a,$Fra_b,$Fra_c,$Fra_d,$operator) { $answer = 0; switch ($operator) { case '+': $mol = ($Fra_a * $Fra_d) + ($Fra_c * $Fra_b); $den = $Fra_b * $Fra_d; $answer = $this->simplify($mol, $den); break; case '-': $mol = ($Fra_a * $Fra_d) - ($Fra_c * $Fra_b); $den = $Fra_b * $Fra_d; $answer = $this->simplify($mol, $den); break; case '×': $mol = $Fra_a * $Fra_c; $den = $Fra_b * $Fra_d; $answer = $this->simplify($mol, $den); break; case '÷': $mol = $Fra_a * $Fra_d; $den = $Fra_b * $Fra_c; $answer = $this->simplify($mol, $den); break; default: $answer="error"; echo $answer; break; } return $answer; } }
测试
分数的四则运算
$Test = new Quiz(); $this->assertEquals('104/235',$Test->getQuiz(2,5,8,188,'+')); $this->assertEquals('1',$Test->getQuiz(3,6,3,6,'+')); $this->assertEquals('1/2',$Test->getQuiz(6,6,3,6,'-')); $this->assertEquals('21/4',$Test->getQuiz(9,6,7,2,'×')); $this->assertEquals('40/21',$Test->getQuiz(8,3,7,5,'÷'));
分数化简
$this->assertEquals('21/4',$Test->simplify(42,8));
异常处理(除0,符号错误)
$this->assertEquals('error',$Test->getQuiz(3,6,3,6,'?')); $this->assertEquals('分母不为0',$Test->simplify(42,0));
测试结果
这里断言故意写错,输出结果如下![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211525936-1827137931.png)
正确输出
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211606998-1225058591.png)
通过测试
代码覆盖率
php下通过phpunit 与 Xdebug扩展完成代码覆盖率的查看以及报告生成以及ide内部查看代码覆盖率![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328211804358-1726767677.png)
通过命令行生成html代码覆盖率报告
# phpunit --coverage-html ./coverage ./QuizTest.class.php
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328212027639-124055628.png)
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328212711701-1211443635.png)
小结与感受:通过测试,是否有效发现了程序计算模块的问题,并给予改进?
经过测试,计算模块基本没有问题,一些小的问题也已经改进。因为之前没有接触过单元测试,查阅了很多资料,经过很多次的修改,对单元测试中的断言有了一定的了解。
但毕竟是第一次接触,不是很熟练,自己将会多加练习。
在隔了一周之后再看之前的代码,是否更能体会到下面这些东西
(1) 良好的设计设计较之前更加简洁清晰,更加完善了
(2) 编码规范
代码可读性较强,成员之间没有因此事产生问题
(3) 必要的注释
必要注释都有标明
PSP
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328214950826-1166477832.png)
结对照片
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170328215053889-420222473.png)
![](https://images2015.cnblogs.com/blog/1112943/201703/1112943-20170329220709733-1479690531.png)
Coding地址
https://coding.net/u/augur_g/p/homework-2/git相关文章推荐
- 结对编程1 - 四则运算生成器的改进(201421123040,60,61)
- 结对编程2——单元测试(40,60,61)
- 结对编程1 - 四则运算生成器的改进(40,60,61)
- 结对编程2-单元测试
- 结对编程2——单元测试
- DHCP option 60 和 option 61
- 结对编程2——单元测试
- 结对编程2—单元测试
- 结对编程之单元测试 201421123108 王坤彬
- DT大数据梦工厂 第59,60,61讲
- 结对编程2——单元测试
- 结对编程2——单元测试【201421123073(我),201421123070(队友)】
- 结对编程2——单元测试(093,094)
- 结对编程2-单元测试
- 结对编程2—单元测试
- linux命令学习(59 60 61)-lastb groups newgrp
- 结对编程2—— 单元测试
- 结对编程2-单元测试
- 结对编程2——单元测试
- POJ 1014 不明白为什么数据可以缩小到60跟61