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实现建立SSH连接的方法
Jun 03 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
使用Python实现简单的服务器功能
Aug 25 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
Python docutils文档编译过程方法解析
Jun 23 Python
django haystack实现全文检索的示例代码
Jun 24 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
用python发送微信消息
Dec 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 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
JQuery 学习技巧总结
2010/05/21 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
VueJS全面解析
2016/11/10 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
详解django中使用定时任务的方法
2018/09/27 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
利用python爬取有道词典的方法
2020/12/08 Python
恶意软件的定义
2014/11/12 面试题
抽象类和接口的区别
2012/09/19 面试题
大学生励志演讲稿
2014/04/25 职场文书
三峡大坝导游词
2015/01/31 职场文书
辩护词格式
2015/05/22 职场文书
大学生受助感言
2015/08/01 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
用python开发一款操作MySQL的小工具
2021/05/12 Python
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL
vscode内网访问服务器的方法
2022/06/28 Servers