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 yield使用方法示例
Dec 04 Python
Python实现字典依据value排序
Feb 24 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
Python Requests库基本用法示例
Aug 20 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
简单了解python数组的基本操作
Nov 26 Python
Python中实现输入一个整数的案例
May 03 Python
python与pycharm有何区别
Jul 01 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
方法汇总:Python 安装第三方库常用
Apr 26 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 ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
python计算方程式根的方法
2015/05/07 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Django实现跨域的2种方法
2019/07/31 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
企业消防安全制度
2014/02/02 职场文书
2014年双拥工作总结
2014/11/21 职场文书
2014年小学工作总结
2014/11/26 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
Java中的随机数Random
2022/03/17 Java/Android