11-1 城市和国家:编写一个函数,它接受两个形参:一个城市名和一个国家名。这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile。将这个函数存储在一个名为city _functions.py 的模块中。

创建一个名为test_cities.py 的程序,对刚编写的函数进行测试(别忘了,你需要导入模块unittest 以及要测试的函数)。编写一个名为test_city_country()的方法,核实使用类似于'santiago'和'chile'这样的值来调用前述函数时,得到的字符串是正确的。运行test_cities.py,确认测试test_city_country()通过了。

city _functions.py

 def city_country(city, country):
city_name = city + ', ' + country
return city_name.title()

test_city_country()

 import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
"""测试city_function.py""" def test_city_country(self):
city_name = city_country('santiago', 'chile')
self.assertEqual(city_name, 'Santiago, Chile') unittest.main()

11-2 人口数量:修改前面的函数,使其包含第三个必不可少的形参population,并返回一个格式为City, Country – population xxx 的字符串,如Santiago, Chile – population 5000000。运行test_cities.py,确认测试test_city_country()未通过。
修改上述函数,将形参population 设置为可选的。再次运行test_cities.py,确认测试test_city_country()又通过了。
再编写一个名为test_city_country_population()的测试,核实可以使用类似于'santiago'、'chile'和'population=5000000'这样的值来调用这个函数。再次运行test_cities.py,确认测试test_city_country_population()通过了。

city _functions.py

def city_country(city, country, population=''):
if population:
city_name = city + ', ' + country + ' - population ' + str(population)
else:
city_name = city + ', ' + country
return city_name.title()

test_cities.py

 import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
"""测试city_function.py""" def test_city_country(self):
city_name = city_country('santiago', 'chile')
self.assertEqual(city_name, 'Santiago, Chile') def test_city_country_population(self):
city_name = city_country('santiago', 'chile', population=5000000)
self.assertEqual(city_name, "Santiago, Chile - Population 5000000") unittest.main()
assertEqual()方法的作用是将要测试函数的执行结果返回的值与预期的结果对比,如果相等则Ok通过
而assertNotEqual()与assertEqual()是相反的,若是不相等则Ok通过
想了解更多unittest类的功能请查阅Python标准库

Python学习笔记之测试函数的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  3. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  8. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

随机推荐

  1. 简单的基于promise的ajax封装

    基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...

  2. 设备树的规范(dts)

    设备树的官方文档: https://www.devicetree.org/specifications/ 一.理论部分 如何看下面这张图: 1)从根节点开始看起,即 / 2)在根节点中有属性以及设备节 ...

  3. arm指令集图片

  4. LOJ 数列分块入门系列

    目录 1.区间加+单点查 每个块维护tag,散的暴力改. code: #include<bits/stdc++.h> using namespace std; const int maxn ...

  5. 【Mybatis】CDATA

    忽视内部尖括号那些东西

  6. <Trie> 212 <Array> 229

    212. Word Search II class TrieNode{ char val; TrieNode[] children; String word; public TrieNode(char ...

  7. A1083 List Grades (25 分)

    Given a list of N student records with name, ID and grade. You are supposed to sort the records with ...

  8. Linux性能优化实战学习笔记:第十六讲

    一.free数据的来源 1.碰到看不明白的指标时该怎么办吗? 不懂就去查手册.用 man 命令查询 free 的文档.就可以找到对应指标的详细说明.比如,我们执行 man fre... 2.free数 ...

  9. [LeetCode] 187. Repeated DNA Sequences 求重复的DNA序列

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  10. ROS第一次开网站跳转到公告页(任意地址跳转)方法

    原文: http://bbs.routerclub.com/thread-74654-1-5.html ROS首页强开配置脚本: /ip firewall natadd action=dst-nat ...