python代码设计测试用例_Python单元测试与测试用例简析

Python单元测试与测试用例简析

发布时间:2019-11-20 22:03

来源:互联网

当前栏目:web技术类

本文实例讲述了Python单元测试与测试用例。分享给大家供大家参考,具体如下:

单元测试与测试用例

简介

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

要为函数编写测试用例,可先导入模块 unittest 以及要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试

创建实例(对比接收到的名和姓是否符合要求)

1.先创建个name_function.py的文件(文件名称可以另取),接收名和姓并返回整洁的全名

def get_formatted_name(first,last,middle=''):

'''生成整洁的姓名'''

if middle:

full_name=first+' '+middle+' '+last

else:

full_name=first+' '+last

return full_name.title()

2.再创建个test_name_function.py的文件,检查name_function.py()在给定名和姓时能否正确地工作

import unittest

from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):

"""测试name_function.py"""

def test_first_last_name(self):

"""能够正确处理姓名么?"""

formatted_name = get_formatted_name('liu','wei' )

self.assertEquals(formatted_name, 'Liu Wei')

unittest.main()

上述代码思路:

导入模块 unittest 和要测试的函数 get_formatted_name()

创建一个名为 NamesTestCase 的类(类的命名可任取,但最好让它看起来与要测试的函数相关,并包含字样Test),用于包含一系列针对get_formatted_name()的单元测试。这个类必须继承unittest.TestCase,这样Python才知道如何运行你编写的测试

NamesTestCase只包含一个方法,我将这个方法命名为test_first_last_name(),我们运行test_name_function.py 时,所有以test_打头的方法都将自动运行。在这个示例中,使用了实参‘liu'和‘wei'调用get_formatted_name(),并将结果存储到变量 formatted_name中

assertEquals()是unittest类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果与期望的结果一致。self.assertEquals(formatted_name, 'Liu Wei') 的意思是:将formatted_name 的值同字符串 'Liu Wei'进行比较

代码行unittest.main()让Python运行这个文件中的测试。

运行结果如下:

----------------------------------------------------------------------

Ran 1 test in 0.000s

OK

第1句的句点表明有一个测试通过。接下来的一行指出Python运行了一个测试,消耗的时间不到0.001秒。最后的OK表明该测试用例中的所有单元测试都通过了。

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库备份与恢复

备份 数据库的恢复 新建数据库邮件恢复

贪心算法精讲

一.贪心算法的基本概念 当一个问题具有最优子结构性质时,我们会想到用动态规划法去解它。但有时会有更简单有效的算法。我们来看一个找硬币的例子。假设有四种硬币,它们的面值分别为二角五分、一角、五分和一分。现在要找给某顾客六角三分钱。…

Arcgis将shp图投影坐标转换地理坐标,投影失败的问题

问题来源: 目的:shp图需要将投影坐标系去掉,即投影坐标系转换为地理坐标系 正常操作: 法1:使用Arcgis中工具箱-数据管理工具-投影与变换-要素-投影,:这个工具进行坐标转换 法2:转换…

c#调用.exe程序

using System.Diagnostics; //需要添加这行引用,关于线程的 private void button1_Click(object sender, EventArgs e){ string path "C:\Program Files\Tencent\QQ\QQ.exe"; //这个path就是要调用的exe程序的绝对路径 System.Diagnostics…

idea创建maven项目

如果没有配置这个参数,在maven生成骨架的时候将会非常慢,有时候直接卡住。archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的ar…

Mapgis图转换为可导入软件的shp

可导入软件的矢量图格式如图,是shp文件,由6个文件构成: 而从Mapgis中导出的shp格式缺少文件,需要将其导入ArcGIS再次导出,补充相关文件。 另外,软件默认的坐标系是WGS-84,不过其他坐标系也可以…

mapgis格式转arcgis的shp格式

转shp 经过试验发现,1.投影坐标系直接转shp的时候不仅会出现位置不正确而且还会出现属性不正确,2.e00数据导入,arcmap2shp软件都会存在一些小问题,可能是作者操作有误导致出现一系列问题 以下介绍个人尝试后没有错误的方法 先将…

高斯投影坐标系为什么是六七八位数

坐标系分为地理坐标系和平面坐标系 地理坐标系 也叫“大地坐标系”,基于地球椭球体建立的坐标系,以经纬度表示, 单位是度分秒(10824′34″),或度小数(108.24356710) 平面坐标系 …

五大算法之三--贪心算法

一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键…

神经网络与深度学习——TensorFlow2.0实战(笔记)(一)

第一章人工智能的起源和发展 人工智能是一门融合了计算机科学、数学、生物学、脑神经学、 心理学和哲学等多种学科的综合性学科。 弱人工智能 ( Artificial Narrow Intelligence , ANI) 拥有某种特定领域智能行为,替代人类从事某些活动。 强人工智能 ( Artificia…

地图矢量化

地图矢量化,将影像图中的路网、河流等绘制成shp图,需要放大图片细细描摹,工作量很大,因此可以先借助一些已有的公开矢量数据,再进行补充绘制。 下载公开矢量数据 网站:全国地理信息资源目录服务系统 http…

图幅号与经纬度的换算

图幅号,如“I48E001004”,一般为10位数。 前三位“I48”表示所属1:100万图幅的行列号 ,地图基本都是在1:100万比例尺的行列式编号基础上划分的。 1:100万图幅的划分规则: 纬度行:从赤道开始算,纬度四度…

五大算法之二--动态规划

动态规划--简单的理解 这个算法简单的来讲就是采用自底向上的方式递推求值,将待求解的问题分解成若干个子问题,先求解子问题,并把子问题的解存储起来以便以后用来计算所需要求的解。简言之,动态规划的基本思想就是把全局的问题化为…

数据库方面的操作示例

1 连接SQL Server数据库示例 // 连接字符串string ConnectionString System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"]; // 创建SqlConnection对象SqlConnection connection new SqlConnection(ConnectionString); try{// 打开数据…

神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(开发环境介绍)

开发环境介绍 Python3 1.结构清晰,简单易学 2.丰富的标准库 3.强大的的第三方生态系统 4.开源、开放体系 5.高可扩展性:胶水语言 6.高可扩展性:胶水语言 7.解释型语言,实现复杂算法时效率较低 (解释型语言是相…

用python做一个简单的投票程序_以一个投票程序的实例来讲解Python的Django框架使...

(一)关于Django Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views)&…

做点什么吧

写了6年代码了,回头发现,虽然写了那么多,真正在使用的少的可怜,真正意义上创造性的劳动也少的可怜。大部分时间都在重复着CtrlC和CtrlV,感觉和产线上的工人差不了多少? 总得做点什么吧? 留下点什么&#x…

BSS段、数据段、代码段、堆与栈

BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段:数据段(data segment)通常是指用来存放程序…

python安装模块方法_Python安装模块的几种方法

一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: python setup.py install 三、 方法3:easy…

使用参数来防止SQL注入

SQL注入的威力是不可忽视的,下面我们主要介绍防范方法——使用参数化SQL。对于不同的数据供应器都有对就的 Parameter 来表示SQL语句或者存储过程中的各种参数。参数和数据库字段的真实类型——对应,所有参数的值会仅仅被认为一个参数。因此,…