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):
return city.title() + ', ' + country.title()
test_cities.py

import unittest
from city_functions import city_country class CityFunctionsTestCase(unittest.TestCase):
"""测试city_functions.py""" def test_city_country(self):
"""测试函数能够返回这样的字符串:Santiago, Chile"""
c_c = city_country('santiago', 'chile')
self.assertEqual(c_c, 'Santiago, Chile') if __name__ == "__main__":
unittest.main()

  运行test_cities.py:

Ran 1 test in 0.002s

OK

  经确认测试test_city_country()通过了。

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):
return city.title() + '. ' + country.title() + '- population ' + str(population)

  修改函数 -> 运行test_cities.py -> 确认测试test_city_country()未通过。

city_functions.py

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

  修改函数 -> 运行test_cities.py -> 确认测试test_city_country()又通过了。

    def test_city_country_population(self):
"""测试函数能返回这样的字符串:Santiago,Chile - population 5000000"""
c_c_p = city_country('santiago', 'chile', population=5000000)
self.assertEqual(c_c_p, 'Santiago, Chile - population 5000000')

  在test_cities.py中添加一个名为test_city_country_population()的测试 -> 再次运行test_cities.py -> 确认测试test_city_country_population()通过了。

最新文章

  1. iOS开发实用技巧—项目新特性页面的处理
  2. Android 如何让EditText不自动获取焦点
  3. homework6-更加简单的题目
  4. Asp.net中基于Forms验证的角色验证授权
  5. [Q]将图纸转换为JPG、PNG、plt、DWF、DWFx,XPS等格式文件
  6. mysql免安装版使用方法
  7. 利用纯CSS美化checkbox和radio和滑动按钮的实现
  8. android仿iphone的地区选择
  9. 深入理解springAOP切面的特性
  10. 小妖精的完美游戏教室——buff系统
  11. zookeeper ZAB协议 Follower和leader源码分析
  12. C语言---变量与函数
  13. 一、NHibernate配置所支持的属性
  14. WCF 自承载 提供源码
  15. 搭建keepalived遇到的问题
  16. 常用的SQL语句大全
  17. Cocos2d-x第一次调试出现的问题
  18. emacs之配置etags-select
  19. new、operator new、placement new
  20. lvds配置

热门文章

  1. JS继承2
  2. CF732D Exams 题解
  3. navicat提示无法连接解决办法
  4. java实现开根号的运算
  5. 自顶向下深入分析Netty(三)--Bootstrap
  6. Unity制作地形的常用插件之GAIA
  7. maven本地仓库已经有了所需的jar包,为什么还要去请求远程仓库
  8. javascript – Node.js请求CERT_HAS_EXPIRED
  9. 【WPF】修改ListBox的Item的样式
  10. cmd 域名生效检测