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调用新浪微博API项目实践
Jul 28 Python
详解Django中的权限和组以及消息
Jul 23 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Python统计单词出现的次数
Apr 04 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python实现的读取网页并分词功能示例
Oct 29 Python
关于Tensorflow分布式并行策略
Feb 03 Python
使用python计算三角形的斜边例子
Apr 15 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
Python中的套接字编程是什么?
Jun 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 冒泡排序 交换排序法
2011/05/10 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
轻松实现js弹框显示选项
2016/09/13 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
学校后勤人员职责
2013/12/27 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
原材料检验岗位职责
2014/03/15 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
离职感谢信怎么写
2015/01/22 职场文书
客房领班岗位职责
2015/02/11 职场文书
专职安全员岗位职责
2015/04/11 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏