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 25 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
python图像处理之镜像实现方法
May 30 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 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
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
Underscore源码分析
2015/12/30 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
vue实现购物车结算功能
2020/06/18 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
药剂学专业应届生自荐信
2013/09/29 职场文书
安全资料员岗位职责
2013/12/14 职场文书
迟到检讨书900字
2014/01/14 职场文书
企业承诺书怎么写
2014/05/24 职场文书
运动员口号
2014/06/09 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
php双向队列实例讲解
2021/11/17 PHP