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 self,cls,decorator的理解
Jul 13 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
老生常谈Python序列化和反序列化
Jun 28 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
详解Python 正则表达式模块
Nov 05 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
详解OpenCV曝光融合
Apr 29 Python
Python开发简易五子棋小游戏
May 02 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的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
学习python类方法与对象方法
2016/03/15 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
python批量获取html内body内容的实例
2019/01/02 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
一套PHP的笔试题
2013/05/31 面试题
优秀教师的感人事迹
2014/02/04 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
结婚保证书范文
2014/04/29 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
2019各种保证书范文
2019/06/24 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript