python进阶(8)--测试函数与类
一、测试函数(unittest)
1、源文件方法(name_function.py):
def get_formatted_name(first,last):
"""生成全名"""
full_name=f"{first} {last}"
return full_name.title()
2、通过unittest测试(test_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):
"""能够正确的处理Janis Joplin这样的姓名"""
formatted_name=get_formatted_name('janis','joplin')
self.assertEqual( formatted_name, 'Janis Joplin' ) if __name__ == '__main__':
unittest.main()
查看运行结果:
Ran 1 test in 0.003s OK
二、测试类(unittest)
1、源文件类(survey.py)
class AnonymousSurvey:
"""收集匿名蒂阿查问卷的答案"""
def __init__(self,question):
"""存储一个问题,并为存储答案做准备"""
self.question=question
self.responses=[] def show_question(self):
"""显示调查问卷"""
print(self.question) def store_response(self,new_response):
"""存储单份调查问卷"""
self.responses.append(new_response) def show_results(self):
"""显示收集到的手机答案"""
print("Survey results")
for response in self.responses:
print(f" - {response}")
2、通过unittest测试(test)
import unittest
from survey import AnonymousSurvey class TestAnonymousSurvey( unittest.TestCase ):
"""针对AnonymousSurvey类的测试"""
def test_store_single_response(self):
question="What language did you first learn to speak?"
my_survey=AnonymousSurvey(question)
my_survey.store_response('English')
self.assertIn( 'English', my_survey.responses ) def test_store_three_response(self):
"""测试三个答案并存储正确"""
question="What language did you first learn to speak?"
my_survey=AnonymousSurvey(question)
responses=['English','Spanish','Chinese']
for response in responses:
my_survey.store_response(response)
for response in responses:
self.assertIn( response, my_survey.responses ) if __name__ == '__main__':
unittest.main()
查看结果:
Ran 2 tests in 0.002s OK
三、setp()与tearDown()方法:初始化与清理程序
import unittest
from survey import AnonymousSurvey class TestAnonymousSurvey( unittest.TestCase ):
def setUp(self):
question = "What language did you first learn to speak?"
self.my_survey=AnonymousSurvey(question)
self.responses = ['English', 'Spanish', 'Chinese'] def tearDown(self):
self.responses.clear() def test_store_single_response(self):
"""针对AnonymousSurvey类的测试"""
self.my_survey.store_response( self.responses[0] )
self.assertIn( self.responses[0], self.my_survey.responses ) def test_store_three_response(self):
"""测试三个答案并存储正确"""
for response in self.responses:
self.my_survey.store_response( response )
for response in self.responses:
self.assertIn( response, self.my_survey.responses ) if __name__ == '__main__':
unittest.main()
查看运行结果:
Ran 2 tests in 0.001s OK
python进阶(8)--测试函数与类的更多相关文章
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
- Python进阶——详解元类,metaclass的原理和用法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第18篇文章,我们来继续聊聊Python当中的元类. 在上上篇文章当中我们介绍了type元类的用法,在上一篇文章当中我 ...
- Python进阶(三)--global和类属性
global关键字 一句话概括为:告诉python解释器,global声明的变量为全局作用域内定义的变量.解释器就会到全局作用域内寻找global定义的变量. python的类属性 类属性相当于其他O ...
- Python进阶开发之元类编程
系列文章 √第一章 元类编程,已完成 ; 本文目录 类是如何产生的如何使用type创建类理解什么是元类使用元类的意义元类实战:ORM . 类是如何产生的 类是如何产生?这个问题肯定很傻.实则不然,很多 ...
- python进阶之函数和类内建魔法属性
前言 关于对象的魔法方法我们已经讲得太多,但是对于类或函数内建的魔法属性和功能我们涉及较少,下面系统了解一下类和函数的内建属性. 查看内建属性 class Person(object): pass d ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量
Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程: 1.线程是一堆指令,是操作系统调度 ...
- Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type())
Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type()) 一丶类的结构细分 ...
- Python进阶(十四)----空间角度研究类,类与类之间的关系
Python进阶(十四)----空间角度研究类,类与类之间的关系 一丶从空间角度研究类 对象操作对象属性 class A(): address = '沙河' def __init__(self, na ...
- Python进阶-XVII 非python的接口类、多态、python自己的封装
1.python模拟java中的接口类 python中是没有接口类的概念的,因为它支持多继承,但是java不能,所以就提出一个接口类的概念 java : 面向对象编程 设计模式 —— 接口 接口类 : ...
随机推荐
- Pytorch实现YOLOv3训练自己的数据集
1.说明: 最近一直在研究深度学习框架PyTorch,就想使用pytorch去实现YOLOv3的object detection.在这个过程中也在各大论坛.贴吧.CSDN等中看了前辈们写的文章,在这里 ...
- Mybatis-Flex之QueryWrapper
1.完整DQL语句 /** * 使用QueryWrapper构建超复杂SQL语句 */ @Test public void testQueryWrapper1() { QueryWrapper wra ...
- Vue重用组件
1.是什么? 这里主要是简单入门使用一下,复杂高阶的用法笔者暂时还没了解到 Vue重用组件是指可以被多个Vue实例重复使用的组件.这些组件可以包含自定义的状态和事件处理程序,并且可以在整个应用程序中共 ...
- 浅谈 Socket.D 与响应式编程
一.Socket.D 的主要特性 首先,Scoket.D 是高效一个二进制的网络通讯协议(官方我讲法是:基于事件和语义消息流的网络应用协议),能够满足很多场景下使用.其次,Scoket.D 是温和的响 ...
- 剑指Offer43:1~n整数中1出现的次数(数位DP)
解题思路:数位DP.dp数组为dp[pos][sum]表示当前位以下还有pos个可变位并且当前位以及它的最高位出现了sum个1的dp值.因为数的取值为2^31所以,数组开dp[10][10]就够了. ...
- 华企盾DSC防泄密申请解密、外发等失败常见处理方法
1.检查文件是否已经打开或被占用,以及文件的权限不是只读(错误代码32或5,这种情况比较常见) 2.系统用户名不能带特殊字符.老版本文件路径中不能含特殊字符(包括备份路径) 3.备份路径是否有读写权限 ...
- 强!推荐一款自动化神器Autolt:不再重复工作
随着互联网不断发展,它给我们带来便利的同时,也带来了枯燥.重复.机械的重复工作.今天,我要和大家分享一款老牌实用的自动化工具:AutoIt,它能够让你告别繁琐的重复性工作,提高工作效率. 这里透露一下 ...
- SpringCloud OpenFeign的使用
SpringCloud OpenFeign的使用 是什么: 声明式http客户端. 目的: 使远程调用更简单 作用: 提供了http请求模板,仅需编写简单接口和插入注解,就可以定义好原始http请求的 ...
- ASR项目实战-语音识别
本文深入探讨语音识别处理环节. 本阶段的重点特性为语音识别.VAD.热词.文本的时间偏移.讲话人的识别等. 语音识别 业界流派众多,比如Kaldi.端到端等,具体选择哪一种,需要综合考虑人员能力.训练 ...
- dotnet-dump工具使用
介绍 dotnet-dump 是 .NET Core 官方工具之一,用于生成和分析 .NET Core 进程的转储文件(dump file).它可以帮助开发人员在应用程序发生故障或性能问题时进行故障排 ...