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实现保证只能运行一个脚本实例
Jun 24 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 Python
python自动化报告的输出用例详解
May 30 Python
numpy下的flatten()函数用法详解
May 27 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python字典底层实现原理详解
Dec 18 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
用python获取txt文件中关键字的数量
Dec 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
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
详解Js中的模块化是如何实现的
2017/10/18 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
python 解压pkl文件的方法
2018/10/25 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
学习委员自我鉴定
2014/01/13 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
关于安全的标语
2014/06/10 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
团组织关系介绍信
2019/06/24 职场文书