Python编写单元测试代码实例


Posted in Python onSeptember 10, 2020

做一个简单的小实例:

目录结构如下:

Python编写单元测试代码实例

demo1.py
class MyClass():

  def __init__(self,x,y):
    self.x = x
    self.y = y

  def add(self):

    return self.x + self.y

  def sub(self):

    return self.x - self.y
import unittest
from unittset_demo.demo1 import MyClass


class MyclassTest(unittest.TestCase):
  def setUp(self) -> None:
    '''
    测试之前的准备工作
    :return:
    '''
    self.clac = MyClass(4,3)

  def tearDown(self) -> None:
    '''
    测试之后的收尾
    如关闭数据库
    :return:
    '''
    pass

  def test_add(self):
    ret = self.clac.add()
    self.assertEqual(ret,9) 

  def test_sub(self):
    ret = self.clac.sub()
    self.assertEqual(ret,-1)

if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(MyclassTest('test_add'))
  suite.addTest(MyclassTest('test_sub'))

  runner = unittest.TextTestRunner()
  runner.run(suite)

setUp就是帮我们做测试前的准备工作,比如实例化等,

tearDown可以帮我们关闭数据库等收尾操作,

一般测试方法必须以test_开头,里面可以写我们需要测试的业务逻辑,同时指定self.assertEqual()将我们的结果和运行的实际结果进行比对。

suite就是我们的测试集,之后添加测试用例,用runner实例化运行。

运行结果:

Python编写单元测试代码实例

如果我们将预计的结果写错,

def test_add(self):
    ret = self.clac.add()
    self.assertEqual(ret,2)

  def test_sub(self):
    ret = self.clac.sub()
    self.assertEqual(ret,3)

运行结果:

Python编写单元测试代码实例

同时我们还可以在django的test文件中测试自己的用例:

class StudentTest(TestCase):
 def setUp(self);
  Student.objects.create(name='jack',age=13)

 def test_student_create(self):
  obj = Student.objects.get(name='jack')
  self.assertEqual(obj.age,18)

测试是使用的模板是否正确,在terminal中输入:python manage.py test 即可测试

class HomeTest(TestCase):
  def test_home_page_renders_home_template(self):
   response = self.client.get('/home/')  # 模拟浏览器
   self.assertEqual(response.status_code,200)
   self.assertTemplateUsed(response,'home.html')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
如何运行Python程序的方法
Apr 21 Python
Python多进程机制实例详解
Jul 02 Python
详解Python多线程
Nov 14 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
Python返回数组/List长度的实例
Jun 23 Python
Python用字典构建多级菜单功能
Jul 11 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
如何用 Python 制作一个迷宫游戏
Feb 25 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
python super()函数的基本使用
Sep 10 #Python
Python如何实现机器人聊天
Sep 10 #Python
Python 必须了解的5种高级特征
Sep 10 #Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 #Python
利用python 读写csv文件
Sep 10 #Python
如何用Python 加密文件
Sep 10 #Python
Python 高效编程技巧分享
Sep 10 #Python
You might like
mysql总结之explain
2012/02/27 PHP
php银联网页支付实现方法
2015/03/04 PHP
JavaScript的Function详细
2006/11/14 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
简述Python中的进程、线程、协程
2016/03/18 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
Python的高阶函数用法实例分析
2019/04/11 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
详细分析Python collections工具库
2020/07/16 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
教师师德反思材料
2014/02/15 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
超市商业计划书
2014/05/04 职场文书
学雷锋标语
2014/06/25 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏