20190919-4 单元测试,结对

此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/7629

结对伙伴:杨萍

2人结对,使用TDD测试框架 (如NUnit, JUnit, cppUnit等)完成本周作业四则运算试题生成的单元测试。

 回答什么是TDD测试框架?

  TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。

  TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。

  TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

  优缺点如下:

      优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能和能够发布的产品。
      缺点:增加代码量。测试代码是系统代码的两倍或更多,但是同时节省了调试程序及挑错时间。

要求1 对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标。 (40分)

要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。由2位同学中的一位发布博客提交到作业,指明自己的结对伙伴;另一位在作业中引用这一博客,指明自己的结对伙伴。(40分)

功能一、二测试:四则运算,支持括号。

测试用例

运行结果

期望结果

输入正确的运算结果

答对啦,你真是个天才!

答对啦,你真是个天才!

输入错误的运算结果

再想想吧,答案似乎是**喔!

再想想吧,答案似乎是**喔!

测试后共答20题

你一共答对**道题,共20道题

你一共答对**道题,共20道题

功能一测试代码:

1 # 功能1测试代码
2 def test_f4_answer(self):
3         print("_f4_answer函数单元测试开始:")
4         _eq = input("输入一个四则运算:")
5         _eq_ans = input("输入一个正确的答案:")
6         self.assertEqual(_eq_ans ,f4()._f4_answer(eq = _eq))
7         print("_f4_answer函数单元测试结束。")
8         print("OK")

输入一个四则运算式子,并输入结果,最后程序判断对错,运行结果如下:

 

 

 功能二测试代码:

1 # 功能二测试代码
2 def test_f4_input(self):
3         print("_f4_input函数单元测试开始:")
4         self.assertEqual(0,f4()._f4_input())
5         print("_f4_input函数单元测试结束。")
6         print("OK")

运行截图如下:

功能三、四测试:限定题目数量,"精美"打印输出,避免重复,支持分数出题和运算。

测试用例

运行结果

期望结果

f4 -c a

题目数量必须是  正整数

题目数量必须是  正整数

f4 -c -6

题目数量必须是  正整数

题目数量必须是  正整数

f4 -c  ‘ ’

题目数量必须是  正整数

题目数量必须是  正整数

f4 -c 3.6

题目数量必须是  正整数

题目数量必须是  正整数

f4 -c 20

“精美”打印输出

“精美”打印输出

f4 -c test

题目数量必须是  正整数

题目数量必须是  正整数

功能三、四测试代码:

 

1  # 测试功能3、功能4
2     def test_f4_integer_parser(self):
3         print("_f4_integer_parser函数单元测试开始:")
4         x = input("输入命令行参数:")
5         self.assertEqual(0,f4()._f4_integer_parser(x))
6         print("_f4_integer_parser函数单元测试结束。")
7         print("OK")
8 if __name__ == '__main__':
9     unittest.main()

测试截图如下:

 

 

 

 

 

 

 

要求3 做好准备,在接下的一周你可能无法通过别人的测试用例。 (0分)

要求4 使用coding.net做版本控制。checkin 前要求清理 临时文件、可执行程序,通常执行 build-clean可以达到效果。(5分)

测试代码地址:https://e.coding.net/xintongxue123/sizeyunsuan.git

 

posted @ 2019-09-24 17:08  彭思雨  阅读(201)  评论(0编辑  收藏  举报