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原始套接字编程示例分享
Feb 21 Python
零基础学Python(一)Python环境安装
Aug 20 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
Python手机号码归属地查询代码
May 04 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python内置模块logging用法实例分析
Feb 12 Python
python使用Tesseract库识别验证
Mar 21 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
Python机器学习三大件之一numpy
May 10 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Sanic框架应用部署方法详解
2018/07/18 Python
详解Python3注释知识点
2019/02/19 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python实现列表的排序方法分享
2019/07/01 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
python 怎样进行内存管理
2020/11/10 Python
python实现简单的学生管理系统
2021/02/22 Python
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
意向书范文
2014/03/31 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
六查六看心得体会
2014/10/14 职场文书
离婚协议书范本2014
2014/10/27 职场文书
2014年保密工作总结
2014/11/22 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
党员转正党支部意见
2015/06/02 职场文书
欠条范文
2015/07/03 职场文书
慰问信(范文3篇)
2019/10/23 职场文书