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 相关文章推荐
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
python实现动态数组的示例代码
Jul 15 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
python zip,lambda,map函数代码实例
Apr 04 Python
python中upper是做什么用的
Jul 20 Python
python爬虫请求头设置代码
Jul 28 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
python re模块和正则表达式
Mar 24 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邮件发送,php发送邮件的类
2011/03/24 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
pycharm永久激活超详细教程
2020/10/29 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
教师自我评价范例
2013/09/24 职场文书
实用求职信范文分享
2013/12/25 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python