使用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模块的一些总结:

  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编写单元测试相关推荐

  1. 用Python编写单元测试:如何开始? [关闭]

    我用Python完成了第一个适当的项目,现在的任务是为它编写测试. 由于这是我第一次做项目,所以这是我第一次为此编写测试. 问题是,我该如何开始? 我完全不知道. 谁能指出我一些可以用来开始编写测试的 ...

  2. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

  3. python 单元测试_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  4. pytest测试框架_聊聊 Python 的单元测试框架(三):最火的 pytest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittes ...

  5. python单元测试框架-Python unittest单元测试框架总结

    什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与输入 ...

  6. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  7. 常用的python测试脚本_详解Python的单元测试

    如果你听说过"测试驱动开发"(TDD:Test-Driven Development),单元测试就不陌生. 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. ...

  8. python split()方法_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  9. 用Python编写干净 可测试 高质量的代码

    用Python编写干净 可测试 高质量的代码 您不必听信我的观点,也不必直接研究代码,可以通过其他方法明显地看出这两种风格之间的差异.第一种方法是实际度量得到测试的代码行数.Nose 是一种流行的 P ...

最新文章

  1. 用koa mongodb 做了个简单的博客系统
  2. golang switch fallthrough
  3. 信阳哪些技校有学计算机的,2018年信阳十大技校排名 排名前十的学校有哪些
  4. 权限控制框架Shiro简单介绍及配置实例
  5. Android studio百度地图的使用
  6. Android 让系统自动生成缩略图并写入媒体库
  7. 【数据库】mysql常用的数据类型
  8. 一步步实现SDDC-分布式交换机入门
  9. C#将DataGridView中的数据导出为EXCEL
  10. DB2中修改表字段类型或者长度
  11. 京东联盟高级API - 高并发京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟接口,线报无广告接口
  12. 常见的监控项目组网方案技术系统图,一文了解清楚!
  13. 什么是503服务不可用错误(以及如何解决)?
  14. Linux vps 主机有免费稳定的推荐吗?
  15. 如何使用思维导图做计划?这样绘制思维导图的方法你使用过吗?
  16. SAP MM 常见移动类型及定义
  17. app被Rejected 的各种原因
  18. 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
  19. axure rp 9.0.0.3687 默认选中bug
  20. 拿到20W年薪offer的面试总结

热门文章

  1. 是知当代之士、驰骛之曹,书读纵横,则思诸侯之变
  2. phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
  3. 《Cortex-M0权威指南》之体系结构---异常和中断
  4. CentOS7系统ifconfig无法使用的解决方法
  5. elasticsearch解决控制台中文乱码问题
  6. C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
  7. 客户端svn出现authorization failed异常
  8. <script type =“text / template”> ... </ script>的说明
  9. 如何仅从git存储库中稀疏签出单个文件?
  10. 如何在Ubuntu上使用ssh-add永久添加私钥? [关闭]