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之玩转字符串(1)
Sep 14 Python
python实现给字典添加条目的方法
Sep 25 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python 2.7中文显示与处理方法
Jul 16 Python
简单了解python单例模式的几种写法
Jul 01 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
如何在django中添加日志功能
Feb 06 Python
Python 在局部变量域中执行代码
Aug 07 Python
教你怎么用Python生成九宫格照片
May 20 Python
Python标准库之typing的用法(类型标注)
Jun 02 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
jquery的颜色选择插件实例代码
2008/10/02 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
物业管理求职自荐信
2013/09/25 职场文书
捐助倡议书范文
2014/04/15 职场文书
画展邀请函
2015/01/31 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript