python3.6编写的单元测试示例


Posted in Python onAugust 17, 2019

本文实例讲述了python3.6编写的单元测试。分享给大家供大家参考,具体如下:

使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。

1、编写Student类:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class Student(object):
  def __init__(self,name,score):
    self.name = name
    self.score = score
  def get_grade(self):
    if self.score >= 80 and self.score <= 100:
      return 'A'
    elif self.score >= 60 and self.score <= 79:
      return 'B'
    elif self.score >= 0 and self.score <= 59:
      return 'C'
    else:
      raise ValueError('value is not between 0 and 100')

2、编写一个测试类TestStudent,从unittest.TestCase继承:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import unittest
from student import Student
class TestStudent(unittest.TestCase):
  def test_80_to_100(self):
    s1 = Student('Bart',80)
    s2 = Student('Lisa',100)
    self.assertEqual(s1.get_grade(),'A')
    self.assertEqual(s2.get_grade(),'A')
  def test_60_to_80(self):
    s1 = Student('Bart',60)
    s2 = Student('Lisa',79)
    self.assertEqual(s1.get_grade(),'B')
    self.assertEqual(s2.get_grade(),'B')
  def test_0_to_60(self):
    s1 = Student('Bart',0)
    s2 = Student('Lisa',59)
    self.assertEqual(s1.get_grade(),'C')
    self.assertEqual(s2.get_grade(),'C')
  def test_invalid(self):
    s1 = Student('Bart',-1)
    s2 = Student('Lisa',101)
    with self.assertRaises(ValueError):
      s1.get_grade()
    with self.assertRaises(ValueError):
      s2.get_grade()
#运行单元测试
if __name__ == '__main__':
  unittest.main()

3、运行结果如下:

python3.6编写的单元测试示例

4、行单元测试另一种方法:在命令行通过参数-m unittest直接运行单元测试,例如:python -m unittest student_test

python3.6编写的单元测试示例

最后对使用unittest模块的一些总结:

  1. 编写单元测试时,需要编写一个测试类,从unittest.TestCase继承
  2. 对每一个类测试都需要编写一个test_xxx()方法
  3. 最常用的断言就是assertEqual()
  4. 另一种重要的断言就是期待抛出指定类型的Error,eg:with self.assertRaises(KeyError):
  5. 另一种方法是在命令行通过参数-m unittest直接运行单元测试:eg:python -m unittest student_test
  6. 最简单的运行方式是xx.py的最后加上两行代码:
if __name__ == '__main__':
  unittest.main()

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python基础教程之基本内置数据类型介绍
Feb 20 Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
Python 通过调用接口获取公交信息的实例
Dec 17 Python
python 提取key 为中文的json 串方法
Dec 31 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Pytorch 实现权重初始化
Dec 31 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
python3 实现的对象与json相互转换操作示例
Aug 17 #Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 #Python
django 通过url实现简单的权限控制的例子
Aug 16 #Python
对Django中内置的User模型实例详解
Aug 16 #Python
对Django中的权限和分组管理实例讲解
Aug 16 #Python
django创建最简单HTML页面跳转方法
Aug 16 #Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 #Python
You might like
PHP面向对象程序设计之接口用法
2014/08/20 PHP
php实现可逆加密的方法
2015/08/11 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
python实现web方式logview的方法
2015/08/10 Python
Python 备份程序代码实现
2017/03/06 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
医院门卫岗位职责
2013/12/30 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
总经理助理职责
2014/02/04 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
文明生主要事迹
2014/05/25 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
技术经济专业求职信
2014/09/03 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python