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装饰器decorator介绍
Nov 21 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
python3.6使用tkinter实现弹跳小球游戏
May 09 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
django框架中间件原理与用法详解
Dec 10 Python
解决python使用list()时总是报错的问题
May 05 Python
Python-openCV开运算实例
Jul 05 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP curl使用实例
2015/07/02 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
vue实现移动端input上传视频、音频
2020/08/18 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Python编写屏幕截图程序方法
2015/02/18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
python+pygame实现坦克大战
2019/09/10 Python
Python切图九宫格的实现方法
2019/10/10 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
python collections模块的使用
2020/10/16 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
个人能力自我鉴赏
2014/01/25 职场文书
高中体育教学反思
2014/01/29 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
医德医风自我评价
2014/09/19 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
元旦主持词开场白
2015/05/29 职场文书