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 BeautifulSoup使用方法详解
Nov 21 Python
python脚本实现查找webshell的方法
Jul 31 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Django Path转换器自定义及正则代码实例
May 29 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 Python
用python画城市轮播地图
May 28 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
是否存在第一台收音机的说法
2021/03/01 无线电
织梦模板标记简介
2007/03/11 PHP
PHP的拦截器实例分析
2014/11/03 PHP
PHP生成唯一订单号
2015/07/05 PHP
php生成无限栏目树
2017/03/16 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
详解python pandas 分组统计的方法
2019/07/30 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
会计系中文个人求职信
2013/12/24 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书