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创建文件和追加文件内容实例
Oct 21 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
浅谈Python 集合(set)类型的操作——并交差
Jun 30 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
Python中enumerate函数代码解析
Oct 31 Python
Python元组知识点总结
Feb 18 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
Python上下文管理器全实例详解
Nov 12 Python
关于python中的xpath解析定位
Mar 06 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
pycharm实现猜数游戏
Dec 07 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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
PHP的全局错误处理详解
2016/04/25 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
python中map()函数的使用方法示例
2017/09/29 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
介绍一下你对SOA的认识
2016/04/24 面试题
销售团队激励口号
2014/06/06 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
Python中itertools库的四个函数介绍
2022/04/06 Python
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle