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判断字符串是否纯数字的方法
Nov 19 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
python中实现字符串翻转的方法
Jul 11 Python
Python闭包和装饰器用法实例详解
May 22 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
详解Django配置JWT认证方式
May 09 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 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隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
对于Python的框架中一些会话程序的管理
2015/04/20 Python
详解Python中的条件判断语句
2015/05/14 Python
Python中super关键字用法实例分析
2015/05/28 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
Internal修饰符有什么含义
2013/07/10 面试题
应届大专生自荐书
2014/06/16 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
单位租房协议范本
2014/12/03 职场文书
小学科学教学计划
2015/01/21 职场文书
python中的random模块和相关函数详解
2022/04/22 Python