20200924-3 单元测试,结对
作业要求参见:https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11243
结对伙伴:张传玉
使用语言:Python
集成环境:Pycharm
测试框架:UnitTest
测试内容:本周作业 四则运算试题生成
要求1 对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标。 (40分)
功能一功能二:
序号 | 测试用例 | 预期结果 |
1 | 在命令行输入f4 | 输出一个四则运算式,并在问好后输入答案 |
2 | 输入正确答案 | 输出“答对啦,你真是个天才!”,如未满20题输出下一道随机四则运算题 |
3 | 输入错误答案 | 输出“再想想吧,答案似乎是xxx喔!”,如未满20题输出下一道随机四则运算题 |
4 | 回答完20道题 | 输出“你一共答对xxx道题,共20道题。”,并结束程序。 |
功能三:
序号 | 测试用例 | 预期结果 |
1 | 命令行输入f4 -c -3 | 输出“题目数量必须是 正整数。” |
2 | 命令行输入f4 -c 5.5 | 输出“题目数量必须是 正整数。” |
3 | 命令行输入f4 -c sss | 输出“题目数量必须是 正整数。” |
4 | 命令行输入f4 -c 3 | 生成.txt文件,文本中有3道不重复的题目及其答案。 |
TDD(UnitTest)测试用例:
序号 | 测试用例 | 预期结果 |
1 | 输入四则运算式 | 功能完整 |
2 | 测试循环功能 | 功能一正常输出 |
3 | 输入f4 -c -3 | 输出“题目数量必须是 正整数。” |
要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。由2位同学中的一位发布博客提交到作业,指明自己的结对伙伴;另一位在作业中引用这一博客,指明自己的结对伙伴。(40分)
测试一:
测试四则运算正则化:
#测试表达式求值 def test_answer(self): print("make_Value函数单元测试开始:") opr= input("输入一个四则运算:") answer= input("输入一个正确的答案:") answer=float(answer) self.assertEqual(answer ,test1().answer_Generate(opr)) print("make_Value函数单元测试结束。") print("表达式求值功能测试完成")
测试结果:
测试二:
# 测试循环出题 def test_circle(self): print("circle_Out函数单元测试开始:") self.assertEqual(0,test1().circle_Out()) print("circle_Outcircular_problem函数单元测试结束。") print("循环出题功能测试完成")
测试结果:
测试三:
一开始测试没有通过,没有检测出小数点的错误后面修改错误。
# 测试规范化出题 def test_normal(self): print("normal_Input函数单元测试开始:") x = input("输入命令行参数:") self.assertEqual(0,test1().normal_Input(x)) print("normal_Input函数单元测试结束。") print("规范化出题功能测试完成")
测试结果:
要求4 使用coding.net做版本控制。checkin 前要求清理 临时文件、可执行程序,通常执行 build-clean可以达到效果。(5分)