HOMEWORD2
开发工具和语言选择
语言 :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的更多相关文章
- 记录一次错误处理 (xml序列化和反序列化相关)
XML序列化后,反序列化时出现错误 报错现象 System.InvalidOperationException: XML 文档(40, 11)中有错误. ---> System.Xml.XmlE ...
随机推荐
- presto 判断数据量是否大于一个比较小的值的优化
问题来源于以下场景: 我们需要对一张数据表做导出文件操作,需要判断如果数据量不多的时候,直接导出提供下载,如果数据量超过一定数值,则异步处理导出和下载. 这里就引入一个问题,如果我们直接count一张 ...
- jvm参数及分析工具
-Xmx4G 设置堆的最大内存大小为4GB,也可通过-XX:MaxHeapSize=4GB进行设置 -Xms256m 设置堆的初始内存大小为256兆,如果未设置此选项,则初始大小将设置为新生代和年老代 ...
- windows环境下,spring boot服务使用docker打包成镜像并推送到云服务器私有仓库
最近在淘宝上学习springcloud教程,其中有几节课是讲解讲本地springboot服务打包成镜像并推送到云服务器私有仓库,但是教程里面用的事Mac环境,我的是Windows环境,而且课程里面没有 ...
- TP自动提取关键词
protected function _before_insert(&$data, $option) { $data['create_time'] = time(); ...
- react-native 安装的时候遇到的问题
JAVA JDK必须要版本8以上(卡了我好大一会,不要忘了环境变量换成8的路径) 这个报错是因为我的版本没升级? 总之解决方法如下 给升级下就好啦~ 然后出现个这么个问题,是因为我用的测试手机是红米 ...
- Python数据库连接池---DBUtils
Python数据库连接池DBUtils DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不 ...
- Python 字符串String相关知识
test.capitalize( ) |首字母大写 test.lower( ) |全部变成小写(只能处理英文字母) test.casefold( ) | ...
- java xml 转 json
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> ...
- js 判断变量是否为空或未定义
判断变量是否定义: if(typeof(hao) == "undefined"){ //未定义 }else{ //定义 } 判断变量是否为空或NULL,是则返回'', 反之返回原对 ...
- jenkins git ftp 发布.net 项目
一次搞这个,在其他文章的基础上 添加下自己的 笔记,方便自己查看, -------需要准备的东西--------------- 下载jenkins https://jenkins.io/downloa ...