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 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Django验证码的生成与使用示例
May 20 Python
python版微信跳一跳游戏辅助
Jan 11 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
Python assert关键字原理及实例解析
Dec 13 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
python画图常规设置方式
Mar 05 Python
pip安装tensorflow的坑的解决
Apr 19 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
python中filter,map,reduce的作用
Jun 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
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
html下载本地
2006/06/19 Javascript
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python帮你识破双11的套路
2019/11/11 Python
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
Python里面如何实现tuple和list的转换
2012/06/13 面试题
单位在职证明范本
2014/01/09 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
保研推荐信格式
2015/03/25 职场文书
大学生读书笔记范文
2015/07/01 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
话题作文之财富(600字)
2019/12/03 职场文书