使用python编写单元测试
使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。
1、编写Student类:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-class Student(object):def __init__(self,name,score):self.name = nameself.score = scoredef 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 Studentclass 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、运行结果如下:
4、行单元测试另一种方法:在命令行通过参数-m unittest直接运行单元测试,例如:python -m unittest student_test
最后对使用unittest模块的一些总结:
- 编写单元测试时,需要编写一个测试类,从unittest.TestCase继承
- 对每一个类测试都需要编写一个test_xxx()方法
- 最常用的断言就是assertEqual()
- 另一种重要的断言就是期待抛出指定类型的Error,eg:with self.assertRaises(KeyError):
- 另一种方法是在命令行通过参数-m unittest直接运行单元测试:eg:python -m unittest student_test
- 最简单的运行方式是xx.py的最后加上两行代码:
if __name__ == '__main__':unittest.main()
使用python编写单元测试相关推荐
- 用Python编写单元测试:如何开始? [关闭]
我用Python完成了第一个适当的项目,现在的任务是为它编写测试. 由于这是我第一次做项目,所以这是我第一次为此编写测试. 问题是,我该如何开始? 我完全不知道. 谁能指出我一些可以用来开始编写测试的 ...
- python rest api 测试_如何用Python编写REST API的单元测试
在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...
- python 单元测试_聊聊 Python 的单元测试框架(一):unittest
本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...
- pytest测试框架_聊聊 Python 的单元测试框架(三):最火的 pytest
本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittes ...
- python单元测试框架-Python unittest单元测试框架总结
什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与输入 ...
- python编写代码_用 Python 编写干净、可测试、高质量的代码
用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...
- 常用的python测试脚本_详解Python的单元测试
如果你听说过"测试驱动开发"(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. ...
- python split()方法_聊聊 Python 的单元测试框架(一):unittest
本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...
- 用Python编写干净 可测试 高质量的代码
用Python编写干净 可测试 高质量的代码 您不必听信我的观点,也不必直接研究代码,可以通过其他方法明显地看出这两种风格之间的差异.第一种方法是实际度量得到测试的代码行数.Nose 是一种流行的 P ...
最新文章
- 用koa mongodb 做了个简单的博客系统
- golang switch fallthrough
- 信阳哪些技校有学计算机的,2018年信阳十大技校排名 排名前十的学校有哪些
- 权限控制框架Shiro简单介绍及配置实例
- Android studio百度地图的使用
- Android 让系统自动生成缩略图并写入媒体库
- 【数据库】mysql常用的数据类型
- 一步步实现SDDC-分布式交换机入门
- C#将DataGridView中的数据导出为EXCEL
- DB2中修改表字段类型或者长度
- 京东联盟高级API - 高并发京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟接口,线报无广告接口
- 常见的监控项目组网方案技术系统图,一文了解清楚!
- 什么是503服务不可用错误(以及如何解决)?
- Linux vps 主机有免费稳定的推荐吗?
- 如何使用思维导图做计划?这样绘制思维导图的方法你使用过吗?
- SAP MM 常见移动类型及定义
- app被Rejected 的各种原因
- 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
- axure rp 9.0.0.3687 默认选中bug
- 拿到20W年薪offer的面试总结
热门文章
- 是知当代之士、驰骛之曹,书读纵横,则思诸侯之变
- phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
- 《Cortex-M0权威指南》之体系结构---异常和中断
- CentOS7系统ifconfig无法使用的解决方法
- elasticsearch解决控制台中文乱码问题
- C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
- 客户端svn出现authorization failed异常
- <script type =“text / template”> ... </ script>的说明
- 如何仅从git存储库中稀疏签出单个文件?
- 如何在Ubuntu上使用ssh-add永久添加私钥? [关闭]