python--从入门到实践--chapter 11 代码测试unittest

编写的代码需要测试是否有Bug

1.函数测试

city_functions.py

def city_country(city, country):return str(city) + ',' + str(country)

city_country_unittest.py

import unittest	#导入测试模块
from city_functions import city_country as cc
class citytest(unittest.TestCase):def test_city_country(self):returnValue = cc("Santiago", "Chile")self.assertEqual(returnValue, "Santiago,Chile") #运行结果是否和期待值相等unittest.main() #运行测试

在这里插入图片描述
city_functions.py中函数添加一个参数,测试程序不变

def city_country(city, country, population):return str(city) + ',' + str(country) + " - " + "population " + str(population)

在这里插入图片描述
再对上面2个文件进行修改

def city_country(city, country, population = ''):if not population:return str(city) + ',' + str(country)else:return str(city) + ',' + str(country) + " - " + "population " + str(population)
import unittest
from city_functions import city_country as cc
class citytest(unittest.TestCase):def test_city_country(self):returnValue = cc("Santiago", "Chile")self.assertEqual(returnValue, "Santiago,Chile") #运行结果是否和期待值相等def test_city_country_population(self):returnValue = cc("Santiago", "Chile", 5000000)self.assertEqual(returnValue, "Santiago,Chile - population 5000000")
unittest.main() #运行测试

在这里插入图片描述

2.类测试

survey.py

class AnonymousSurvey():def __init__(self, question):self.question = questionself.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('- ' + response)

test_language_survey.py

import unittest
from survey import AnonymousSurveyclass testLanguageSurvey(unittest.TestCase):def setUp(self):    #创建的变量供后面测试函数用question = "What language did you first learn to speak?"self.my_survey = AnonymousSurvey(question)self.responses = ['English', 'Spanish', 'Mandarin']def test_store_single_response(self):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)
unittest.main()

3.课后作业

employee.py

class Employee():def __init__(self, firstname, lastname, salary):self.firstname = firstnameself.lastname = lastnameself.salary = salarydef give_raise(self, raisedmoney = 5000):self.salary += raisedmoney

test_employee.py

from employee import Employee
import unittestclass test_employee(unittest.TestCase):def setUp(self) -> None:self.employee_default = Employee('michael', 'ming', 5000)self.employee_custom = Employee('kobe', 'bryant', 5000)def test_dafault(self):self.employee_default.give_raise()self.assertEqual(10000, self.employee_default.salary)def test_custom(self):self.employee_custom.give_raise(1000)self.assertEqual(6000, self.employee_custom.salary)unittest.main()

在这里插入图片描述

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

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

相关文章

刘升平 | 基于知识图谱的人机对话系统

本文转载自公众号:AI科技大本营。 分享嘉宾 | 刘升平(云知声 AI Labs 资深技术专家)来源 | AI 科技大本营在线公开课人机对话系统,或者会话交互,有望成为物联…

最强Java面试题全部合集,涵盖BAT大厂面试必考的9大技术!-强烈建议收藏

过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服、天猫、淘宝、头条、拼多多等Java面试题目。 过去2年,我已经成功的帮助了部分同学进入了大厂。 2020开始,我依然会为大家带来最新的大厂现场面试专场题目,希…

杨强教授新番!破解机器学习数据孤岛和数据保护难题

一只小狐狸带你解锁 炼丹术&NLP 秘籍移动互联技术这把“温柔刀”,带来巨大便利之余,也将我们的个人数据放进了橱窗,为“推动信息技术发展”而供人调取。我们都清楚网络“裸奔”的行为很混乱,但你知道到底有多乱吗?…

POJ 3122 分披萨(二分查找)

题目链接:http://poj.org/problem?id3122 题目大意: 有 n 块披萨(大小不一样), f 个人分,包含主人自己 f1 人; 每人吃的披萨必须是一块披萨上切下来的。每个人吃的披萨相等,披萨可…

没错,继事理图谱后,我们又搞事情了:数地工场自然语言处理语义开放平台正式对外发布!

2020年的钟声即将敲响,在这辞旧迎新之际,经过近几年在Fintech领域中的自然语言处理技术研发和产品迭代积累,数据地平线Datahorizon迎来重大更新,以数据、事件、逻辑的语义toolbox为愿景的数地工场开放平台V1.0正式对外发布。 数地…

论文浅尝 | Understanding Black-box Predictions via Influence Func

Cite: Koh P W, Liang P. Understanding black-box predictions via influence functions[J]. arXiv preprint arXiv:1703.04730, 2017.链接:https://arxiv.org/pdf/1703.04730GitHub项目地址:http://bit.ly/gt-influence本文使用影响函数(Influence fun…

ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:苏剑林(来自追一科技,人称“苏神”)前言需要许多时间步计算的循环神经网络,如LSTM、GRU,往往存在梯度爆炸的问题。其目标函数可能存在悬崖一样斜率较大的区域&…

快手高级Java四轮面试题:设计模式+红黑树+Java锁+Redis等

快手Java一面(一个小时十分钟) 1.自我介绍 2.说说B树和B树的区别,优缺点等? 3聊聊Spring,主要IOC等等 4多线程JUC包下的一些常见的类,比如CountDownLatch、Semaphore等 5.锁的概念,锁相关的…

数据结构--跳表SkipList

对单链表查找一个元素的时间复杂度是 O(n)通过对链表建立多级索引的结构,就是跳表,查找任意数据、插入数据、删除数据的时间复杂度均为 O(log n)前提:建立了索引,用空间换时间的思路(每两个节点建立一个索引)索引节点总和 n/2n/4n…

领域词汇知识库的类型、可用资源与构建技术漫谈

词是语言系统中重要的语言单元,词语是开展文本处理的基础,在语义表示上具有比字符更丰富的表达能力。词语具有领域特性,不同的领域具有不同的词汇体系,如军事领域、医疗领域、公共治安领域、金融领域之间存在着很大的差异性。这种…

论文浅尝 | EARL: Joint Entity and Relation Linking for QA over KG

Mohnish Dubey, Debayan Banerjee, Debanjan Chaudhuri, Jens Lehmann: EARL: Joint Entity and Relation Linking for Question Answering over Knowledge Graphs. International Semantic Web Conference (1) 2018: 108-126链接:https://link.springer.com/conten…

百度高级Java三面题目!涵盖JVM +Java锁+分布式等

百度高级Java一面 自我介绍 对象相等的判断,equals方法实现。 Hashcode的作用,与 equal 有什么区别? Java中CAS算法? G1回收器讲一下? HashMap,ConcurrentHashMap与LinkedHashMap的区别 如何在多线程环…

python--从入门到实践--chapter 12 pygame_Alien_Invasion

安装pygame包,把安装好的包copy一份到pycharm工程目录下,不然找不到pygame包 抄一遍书上的代码: settings.py class Settings():def __init__(self):self.screen_width 1200self.screen_height 800self.bg_color (255, 255, 255)self.s…

实时事理学习与搜索平台DemoV1.0正式对外发布

我们团队探索了一种将事件、概念、逻辑、实时学习、多类知识库实时更新串起来的知识服务新模式。一个面向事理的实时学习和搜索系统Demo,取名叫“学迹”,取自“学事理,知行迹”。 项目地址:https://xueji.zhiwenben.com 一、 “学…

卖萌屋算法工程师思维导图part3—深度学习篇

卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。下面是第三部分深度学习的内容~公众号后台回复【思维导图】获取完整手册&…

论文浅尝 | Zero-Shot Transfer Learning for Event Extraction

事件抽取的目标是在非结构化的文本中确认事件的触发词(Eventtrigger)和参与者(Event argument),并判断触法词的事件类型(Eventtype),判断参与者在事件中的扮演的角色(Arg…

今日头条Java后台Java研发三面题目

最近有同学在优知学院留言区留言是否能发布今日头条的面试题目,这位同学,题目来了哦~ 一面 concurrent包下面用过哪些? countdownlatch功能实现 synchronized和lock区别,重入锁 thread和runnable的区别 AtomicInteger实现原理…

实时事理逻辑知识库(事理图谱)终身学习项目-EventKGNELL(学迹)

EventKGNELL EventKGNELL, event knowlege graph never end learning system, a event-centric knowledge base search system,实时事理逻辑知识库终身学习和事件为核心的知识库搜索项目。包括事件概念抽取、事件因果逻辑抽取、事件数据关联推荐与推理。 项目地址&…

python--从入门到实践--chapter 15 16 17 生成数据/下载数据/web API

1.随机漫步 random_walk.py from random import choice class RandomWalk():def __init__(self, num_points5000):self.num_points num_pointsself.x_value [0]self.y_value [0]def fill_walk(self):while len(self.x_value) < self.num_points:x_direction choice([1…

ACL2020 | 基于Knowledge Embedding的多跳知识图谱问答

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者&#xff1a;舒意恒&#xff08;南京大学硕士生&#xff0c;知识图谱方向&#xff09;背景什么是知识图谱问答&#xff1f;知识图谱&#xff08;KG&#xff09;是一个多关系图&#xff0c;其中包含数以百万计的实体&#xff0c;以及…