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中字典dict常用操作方法实例总结
Apr 04 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
Python代码块及缓存机制原理详解
Dec 13 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python常用数据分析模块原理解析
Jul 20 Python
Python暴力破解Mysql数据的示例
Nov 09 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 在线打包_支持子目录
2008/06/28 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
Python sorted对list和dict排序
2020/06/09 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
大型会议接待方案
2014/03/01 职场文书
电钳工人个人求职信
2014/05/10 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
单身证明格式样本
2015/06/15 职场文书
李强感恩观后感
2015/06/17 职场文书