对函数(模块中的)进行函数测试
定义两个需要被测试的函数:
#求和函数
def mySum(x,y):
return x+y #相减函数
def mySub(x,y):
return x-y print(mySum(10,20))

#导入测试模块 import unittest
import unittest #导入需要被测试的函数
from method import mySum
from method import mySub
对函数(模块中的)进行单元测试:
步骤一:
需要先导入测试模块unittest,然后自定义类继承unittest中的TestCase类,
并且去重写setUp()和tearDown()函数
步骤二:
将需要被测试的函数命名修饰一下(加上test_来定义),
在函数体中通过self调用assertEqual()函数,目的:断言结果
步骤三:
启动测试模块
如果控制台显示红条,表示断言失败,可以认为测试的方法功能有问题
如果控制台显示绿条,表示断言成功,可以认为测试的方法功能ok
#自定义类:
class MyTest(unittest.TestCase):
'''
以下代码发生子类重写父类函数的行为
理解:setUp()和tearDown()函数的作用
对于setUp()函数而言:
在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之前被调用执行)
对于tearDown()函数而言:
在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之后被调用执行)
'''
def setUp(self):
print('对函数开始单元测试...') def tearDown(self):
print('单元测试结束了...') '''
修饰需要被测试的函数
以下两个函数都是由系统自动调用(时机:分别在setUp()函数之后和tearDown函数之前)
''' def test_mySum(self):
'''
断言:预言(测试)、就是推断这个函数执行以后的结果是什么?
通过self调用assertEqual(,,)
参数1:需要被测试的函数 【注意】此函数调用必须有小括号以及实参
参数2:断言的结果
参数3:如果断言失败了,错误提示信息
'''
self.assertEqual(mySum(2,1),3,'加法功能逻辑有误...') def test_mySub(self):
self.assertEqual(mySub(5,1),1,'减法功能逻辑有误...') if __name__=='__main__':
#需要通过测试模块unittest调用其main()
unittest.main()
返回目录

python六十五课——单元测试(一)的更多相关文章

  1. python六十四课——高阶函数练习题(三)

    案例五:求两个列表元素的和,返回新列表lt1 = [1,2,3,4]lt2 = [5,6]效果:[6,8,10,12] lt1=[1,2,3,4] lt2=[5,6] print(list(map(l ...

  2. python六十九课——网络编程之TCP协议

    1.1 概述: TCP协议通过三次握手协议将客户端与服务器端连接,两端使用各自的Socket对象.Socket对象中包含了IO流,供数据传输. 即:TCP协议在客户端与服务器端通过Socket组成了I ...

  3. python六十八课——网络编程之UDP协议

    1.1 概述 UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接.简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到 ...

  4. python六十四课——高阶函数练习题(二)

    总结:高阶函数以及匿名函数之间的配合使用 from functools import reduce #模块一:lambda和filter的结合使用 #lt = [1,2,3,4,5,6,7,8,9] ...

  5. python六十四课——高阶函数练习题(一)

    1.lt = ['sdfasdfa', 'ewqrewrewqr', 'dsafa12312fdsafd', 'safsadf'] --> 得到长度列表2.tp = ('TOM', 'Lilei ...

  6. python六十二课——高阶函数之filter

    高阶函数之:filter函数:过滤数据的,最终返回一个惰性序列对象(filter对象,迭代器对象)解释:filter的意思:在计算机领域中我们都称为过滤器格式:filter(fn,lsd):参数和ma ...

  7. python第二十五课——闭包

    满足闭包的三个条件: 1).有外部函数和内部函数这样的结构 2).外部函数中定义的变量被内部函数所使用 3).内部函数对象作为返回值被外部函数返回 演示闭包的定义和使用: def outer(): a ...

  8. python第十五课——全局变量and局部变量

    全局变量&局部变量: 全局变量的特点: 1).直接定义在.py文件中(函数外)的变量(全局位置) 2).作用域比较大,可以被此文件中的任何函数所使用 局部变量的特点:1).定义在函数内部(函数 ...

  9. JAVA学习第六十五课 — 正則表達式

    正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告 ...

随机推荐

  1. [PHP] 算法-字符串的全排列的PHP实现

    输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 思路: 1.利用递归形成 ...

  2. 30.QT-渐变之QLinearGradient、 QConicalGradient、QRadialGradient

    渐变有三种:QLinearGradient.QConicalGradient . QRadialGradient 它们都有一个QGradient父类 QGradient父类的常用公共函数有: void ...

  3. dubbo+zookeeper+springBoot框架整合与dubbo泛型调用演示

    dubbo + zookeeper + spring Boot框架整合与dubbo泛型调用演示   By:客 授客 QQ:1033553122  欢迎加入全国软件测试交流 QQ  群:7156436 ...

  4. Java 控制类的引用类型,合理使用内存

    Java提供了 java.lang.ref包,该包下的类均与垃圾回收机制相关 先介绍Java对象的集中引用类型 1.强引用 强引用是最常见的,创建对象就是强引用,如 String a = new St ...

  5. GET和POST两种基本请求方法的区别(转)

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  6. WORLD 文件选择的操作方法

    1,按住鼠标左键拖动选择文本. 2,双击鼠标可选中光标前面一个字,如果光标左右两边是一个词,那么就会选中整个词. 3,三击-----整段. 4,光标(鼠标)移至文本左边(外面),变成向右倾斜的光标箭头 ...

  7. react-conponent-secondesElapsed

    <!DOCTYPE html> <html> <head> <script src="../../build/react.js">& ...

  8. K8S 高级调度方式

    可以使用高级调度分为: 节点选择器: nodeSelector.nodeName 节点亲和性调度: nodeAffinity Pod亲和性调度:PodAffinity Pod反亲和性调度:podAnt ...

  9. vuejs2.0实现分页组件,使用$emit进行事件监听数据传递

    上一篇文章介绍了vuejs实现的简单分页,如果我有几个页面都需要有分页效果,不可能每个页面都去复制一下这段代码吧,意思是封装一下,变成通用的组件. 首先使用基础 Vue 构造器,创建一个“子类”,Vu ...

  10. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 871  Solved: 365[Submit][Status][Discuss] Description ...