开发工具和语言选择

语言 :pyhton3.6 工具 我选择的是 pycharm2019.1。由于之前已经安装好了,这里就不再贴出。

自动单元测试练习

python单元测试框架Unittest。Unittest最核心的四个概念是:test case, test suite, test runner, test fixture。下面简单介绍一下

Testcase

可以理解为一个单独的测试用例

Testsuit

就是多个测试用例集合在一起

Testloader

加载Testcase到Testsuit,返回一个Testsuit

Testfixture

对一个用例的搭建和销毁

测试函数的编写

mytest.py

class MATH:
def add(self,a,b):
return a+b
def minus(self,a,b):
return a-b
def divide(self,a,b):
return a/b

测试单元

tstunit.py

import  unittest
from mytest import *
class theTests(unittest.TestCase):
def setUp(self):
self.m = MATH() def tearDown(self):
pass def test_add(self):
result = self.m.add(10,20)
self.assertEqual(30,result)
print('+') def test_minus(self):
result = self.m.minus(20,10)
self.assertEqual(10,result)
print('-') def test_divide(self):
result = self.m.divide(9,2)
self.assertEqual(4.5,result)
print('/')
if __name__ == '__main__':
unittest.main()

运行结果

如下图



.表示测试通过 F表示不通过。我们看输出的符号顺序是 + / - 这与我们编写的测试顺序不同。如果想让输出按照我们编写的顺序来实现的话可以这样实现。

在函数名中添加数字来实现

比如之前的test_divide()函数 将其改为test_3_divide(),将test_add()改为test_2_add(),将test_minus()改为test_1_minus()

运行后,输出如下。

另一种方法就是使用Testsuit

Testsuit不仅可以按序测试多个函数,也可以按顺序执行多个测试文件

按顺序将要测试的函数添加到列表中,通过addTests方法添加到Testsuit中

运行结果如下

参考文章

[1](http://www.mamicode.com/info-detail-2366101.html)
[2](https://blog.csdn.net/huilan_same/article/details/52944782)

HOMEWORD2的更多相关文章

  1. 记录一次错误处理 (xml序列化和反序列化相关)

    XML序列化后,反序列化时出现错误 报错现象 System.InvalidOperationException: XML 文档(40, 11)中有错误. ---> System.Xml.XmlE ...

随机推荐

  1. Mac上实现Python用HTMLTestRunner生成html测试报告

    一.导入HTMLTestRunnerNew文件 首先,我们要知道如果要利用HTMLTestRunnerNew生成测试报告的话,就需要对其进行导入: HTMLTestRunnerNew下载地址:链接:h ...

  2. websocket session共享

    单机运行 用户a通过服务器进入房间room,用户b也通过房间进入room,用户之间是通过session来通话的,所以session直接存储在集合中就可以了. 因为session存储在一台服务器的集合中 ...

  3. content-type的几种取值

    四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下 ...

  4. 待实验的socketserver

    # -*- coding:utf-8 -*-# Author: Dennis Huang__Author__ = "Dennis" import socketserver clas ...

  5. poj1002总结

    1.之前一直是runtime error,没有找出具体原因,把冒牌排序改成了合并排序,当输入是100000行时,从大约10s变到1s内 2.感觉是atoi指针导致的,当判断atoi的入参不为NULL时 ...

  6. 斐讯K2 22.5.9固件刷华硕固件实测教程

    斐讯K2最新的固件是V22.5.9.163这个版本是锁死了,不能刷机的,而且不能降级到原来的可以刷机的老版本固件,也就不能刷第三方固件了,怎么破呢?下面就教大家怎么降级刷机到V22.4.2.8固件.  ...

  7. 小程序 onReachBottom 事件快速滑动时不触发的bug

    一般在列表页面 会先加载一定数量的数据 触发上拉加载这个动作的时候再陆续加载数据 假如上拉一次加载10条数据 在小程序中 你快速滑动页面触发加载这个事件的话 你会发现小程序卡着不动了 刚开始以为数据加 ...

  8. python中的lambda表达式

    lambda是python中匿名函数的写法  我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def  plus(a,b): return a+b lambda方法  ...

  9. Java垃圾回收机制和注解

  10. 《团队-爬虫豆瓣top250项目-团队一阶段互评》

    团队名称:咣咣踹电脑 学号:2015035107217姓名:耿文浩 得分10 原因:组长带领的好,任务分配的好,积极帮助组员解决问题 学号:2015035107213姓名:周鑫 得分8 原因:勇于分担 ...