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中循环语句while用法实例
May 16 Python
python修改操作系统时间的方法
May 18 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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 第二节 数据类型之转换
2012/04/28 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
重定向实现代码
2006/11/20 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
jQuery Dom元素操作技巧
2018/02/04 jQuery
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
Python获取文件ssdeep值的方法
2014/10/05 Python
python中__call__内置函数用法实例
2015/06/04 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python笔记之工厂模式
2019/11/20 Python
python实现电子词典
2020/03/03 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
新闻记者个人求职的自我评价
2013/11/28 职场文书
节约粮食标语
2014/06/18 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
客服专员岗位职责
2015/02/10 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
python 算法题——快乐数的多种解法
2021/05/27 Python