1、Python标准库中的模块unittest提供了代码测试工具。

  单元测试用于核实函数的某个方面没有问题;

  测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。

  通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')

  if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;

    当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。

2、测试函数:首先要创建一个包含一些列针对一个函数的单元测试的类,类的命名最好看起来和被测试的函数相关,并包含Test,这个类必须继承unittest.TestCase类

  这个测试类中每一种方法命名都要以test_开头,运行测试文件时,所有已test打头的方法都会自动运行

#城市-国家-人口
import unittest #调用unittest模块
from city_functions import get_formatted_city #调出被测试函数
class CitiesTestCase(unittest.TestCase):#创建一个继承unittest.TestCase的类
def test_city_country(self):
'''测试能否正确处理这样的格式'''
formatted_city = get_formatted_city('new york','america')
self.assertEqual(formatted_city,'New York,America')
def test_city_country_population(self):
formatted_city = get_formatted_city('new york', 'america','')
self.assertEqual(formatted_city, 'New York,America - Population 5000')
if __name__ == '__main__':
unittest.main()

3、测试类

  setUp()方法,让我们只需创建对象一次,每个测试方法中都可以使用它们

#给员工增加年薪
import unittest
from employee import Employee
class TestEmployee(unittest.TestCase):
#setUp()方法,让我们只需创建对象一次,每个测试方法中都可以使用它们
def setUp(self):
self.new_employee =Employee('james','lebran',10000) def test_give_default_raise(self):#测试以默认值增加年薪
self.new_employee.give_raise()
self.assertEqual(self.new_employee.annual_salary,15000)
def test_give_costum_raise(self):#测试以特定值增加年薪
self.new_employee.give_raise(10000)
self.assertEqual(self.new_employee.annual_salary, 20000)
if __name__ == '__main__':
unittest.main()

4、测试类中必须包含一个断言方法,用来核实得到的结果是否与期望的结果一致。

  unittest Module 中的断言方法:

    assertEqual(a,b)      --核实a == b
assertNotEqual(a,b) --核实a != b
assertTrue(x) --核实x为True
assertFalse(x) --核实x为False
assertIn(item,list) --核实item在list中
assertNotIn(item,list)--核实item不在list中

Python基础知识:测试代码的更多相关文章

  1. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

  2. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  3. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  4. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  5. python基础知识部分练习大全

    python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行 ...

  6. 开发技术--浅谈python基础知识

    开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...

  7. python基础知识的学习和理解

    参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base   python基础知识笔 ...

  8. python基础知识(一)

    Python基础知识 计算基础知识 1.cpu 人类的大脑 运算和处理问题 2.内存 临时存储数据 断电就消失了 3.硬盘 永久存储数据 4.操作系统 调度硬件设备之间数据交互 python的应用和历 ...

  9. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  10. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

随机推荐

  1. window傻瓜式安装tensorflow

    最近学习一下,比较热门的深度学习. 本人英文差,记性差,什么都差,哈哈. 折腾过ub安装,虽然成功,但是总是觉得不好用. 发现tenorflow已经可以很傻瓜的在windows下安装了....... ...

  2. Python学习的路上,Anaconda送你一双遮天神翼

    一.背景 ​ 最近在学习python,发现在本地搭建python环境的时候,要是想要同时搭建不同python版本的环境,就比较麻烦,很容易就出现冲突了,很是头疼.然后光明就出现这山重水复疑无路的时候, ...

  3. bash回收站

    通过替换rm命令使被删除的文件或文件夹被移动到-/.delete/日期文件夹,方便恢复 可以定期手动删除.delete文件夹或通过额外配置定期删除减少空间占用 # for rm {{ del_time ...

  4. 从逻辑思维中学习CSS,从宽高说起

    从宽高说起 从宽高说起,我们知道一个物体的大小是由长.宽.高三个方向的尺寸决定的,但是你想啊电脑显示器是一个平面的,而不是3维,另因网页大部分情况下只需要使用到2维,所以为了简单在CSS中只有宽和高的 ...

  5. 读vue-0.6-observer.js源码

    实现监听数组方法 var ArrayProxy = Object.create(Array.prototype), methods = ['push','pop','shift','unshift', ...

  6. Angularjs 通过asp.net web api认证登录

    Angularjs 通过asp.net web api认证登录 Angularjs利用asp.net mvc提供的asp.net identity,membership实现居于数据库的用户名/密码的认 ...

  7. [转]debian9 安装任意版本mysql

    Debian 9 - Install MySQL Server The steps below will show you how to install whichever version of My ...

  8. 用Visual Studio Code写Node.j

    介绍 vsc的宣传语是: 一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器. 按它说的,vsc特别适合来作为前端开发编辑器. 内 ...

  9. eclipse + maven搭建SSM框架

    0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Developers  Version: Neon.3 Re ...

  10. Rancher2.0构建kubernetes(K8S)集群

    一.环境准备 1.准备至少3台CentOS7版本的虚拟机 # IP地址 主机名称 192.168.1.160 rancher 192.168.1.161 master 192.168.1.162 no ...