#1.城市和国家:编写一个函数,它接受两个形参:一个城市名和一个国家名。
#这个函数返回一个格式为City,Country的字符串,如Santiago,Chile。将这个函数
#存储在一个名为city_function.py的模块中
#创建一个名为test_cities.py的程序,对编写的函数进行测试
#编写一个名为test_city_country()的方法核实得到的字符串正确 #city_function.py def city_country(city,country):
#国家和城市
country_city = city + " " + country
return country_city.title() #test_cities.py
from city_function import city_country print("\nEnter q to quit.")
while True:
#输入城市和国家
city = input("\nEnter a city: ")
if city == 'q':
break
country = input("\nEnter country of the city: ")
if country == 'q':
break get_msg = city_country(city,country)
print("The city and country: " + get_msg.title()) #unittest_test_city.py
import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
def test_city_country(self):
get_city_country_name = city_country("beijing","china")
self.assertEqual(get_city_country_name,"Beijing China") unittest.main() #2.人口数量:修改1中的函数,使其包含必不可少的形参population
#并返回一个格式City,Country - population xxx 的字符串 def city_country(city,country,population=''):
#国家和城市
country_city = city + ", " + country + " -- Population " + population
return country_city.title() ##测试模块
import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
def test_city_country(self):
get_city_country_name = city_country("beijing","china","")
self.assertEqual(get_city_country_name,"Beijing, China -- Population 5000") unittest.main()
#3.雇员:编写一个名为Employee的类,其方法__init__()接受名、姓和年薪
#并将它们存储在属性中。编写一个名为give_raise()的方法,它默认将年薪增加5000
#但也能够接受其他的年薪增量。编写一个测试用例,其中包含两个测试方法:
#test_give_default_raise()和test_give_custom_raise()
#使用setUp方法,以免在每个测试方法中都创建新的雇员实例,运行这个测试用例
#确认两个测试都通过 #employee.py
class Employee(): def __init__(self,first_name,last_name,salary):
self.first_name = first_name
self.last_name = last_name
self.salary = salary
self.raising = 5000 def give_raise(self):
return self.raising #test_employee.py
import unittest
from employee import Employee class TestEmployee(unittest.TestCase):
#针对Employee类的测试 def setUp(self):
self.employee_test = Employee('Ma','Naoke',5000) def test_give_default_raise(self):
#测试默认的工资
raising = self.employee_test.give_raise()
self.assertEqual(raising,5000) def test_give_custom_raise(self):
#测试年薪增量
self.employee_test.raising = 6000
raising = self.employee_test.give_raise()
self.assertEqual(raising,6000) unittest.main()

Python:从入门到实践--第十一章--测试代码--练习的更多相关文章

  1. Python 从入门到实践 试一试 参考代码

    这两天学习Python 看了python从入门到实践的书籍,里面有课后题“试一试” 然后就跟着写了,代码在以下地址,如果需要自取 https://files.cnblogs.com/files/fud ...

  2. Python:从入门到实践--第四章--列表操作--练习

    #1.想出至少三种你喜欢的水果,将其名称存储在一个列表中,再使用for循环将每种水果的名称都打印出来. #要求:(1)修改这个for循环,使其打印包含名称的句子,而不是仅仅是水果的名称.对于每种水果, ...

  3. Python:从入门到实践--第三章--列表简介--练习

    #1.将一些朋友的姓名存储在一个列表中,并将其命名为friends.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来. #2.继续使用1中的列表,为每人打印一条消息,每条消息包含相同的问候语 ...

  4. Python:从入门到实践--第六章--字典--练习

    #1.人:使用一个字典来存储一个熟人的信息;包括姓,名,年龄和居住的城市.将字典中的每项信息都打印出来 friend = { 'last_name':'马', 'first_name':'脑壳', ' ...

  5. python 从入门到实践 第三章

    在第3章,你将学习如何在被称为列表的变量中存储信息集,以及如何通过遍历列表来操作其中的信息 写注释 # 代码越长 标识好代码的重要性 越来越重要要求习惯:在代码中编写清晰,简洁的注释开始研究更复杂的主 ...

  6. Python:从入门到实践--第五章--if语句--练习

    #1.编写一系列条件测试:将每个测试以及结果打印出来 car = '宝马' if car == "宝马": print("预测正确") print(car) e ...

  7. Python:从入门到实践--第七章--用户输入和while循环-练习

    #1.编写一个程序,询问用户要租赁什么样的汽车,并打印. car = input("What's kind of cars dou you want to rent?,sir:") ...

  8. MyBatis从入门到精通:第一章测试代码

    package tk.mybatis.simple.mapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.se ...

  9. #Python编程从入门到实践#第四章笔记

    #Python编程从入门到实践#第四章笔记   操作列表 ​​​1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...

随机推荐

  1. Ceres Solver 入门稍微多一点

    其实ceres solver用了挺多的,可能是入门不精,有时候感觉感觉不理解代码上是怎么实现的,这次就通过ceres的官网仔细看了一些介绍,感觉对cpp了解更好了一些. 跟g2o的比较的话,感觉cer ...

  2. css3动画怎样能从下往上慢慢升上去

    <!DOCTYPE html><html><head> <style> div { width:100px; height:100px; backgro ...

  3. Django数据同步过程中遇到的问题:

    1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__ve ...

  4. unity中的UGUI一些组件的使用

    一.Toggle Group(Script) LeftButtons上添加Toggle Group组件,属性Allow Switch Off打对勾,代表它的所有子物体上带有Toggle组件的属性Is ...

  5. JavaScript中的获取元素的方法

    通过id获取元素 document.getElementById(id名字) 通过标签获取元素 document/元素.getElementsByTagName(标签名) 通过css选择器获取元素 d ...

  6. XAMPP本地服务器打不开解决方案

    第一步:先开启相关服务:如图 第二步:在浏览器上输入localhost:端口号,(或127.0.0.1:端口号),按回车,就成功登陆本地服务器. =========================== ...

  7. window.opener和window.open

    window.open (URL,name,specs,replace)方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. URL:可选.打开指定的页面的URL.如果没有指定URL,打开一个新的空 ...

  8. java8中optional和.stream().map()

    使用optional的好处:是一个可以包含或不可以包含非空值的容器对象,更加友好的处理程序中的空对象. Optional<T>有方法 isPresent() 和 get() 是用来检查其包 ...

  9. 手机端扫描证件识别SDK

    手机端扫描证件识别SDK 一.手机端扫描证件识别SDK应用背景 这些年,随着移动互联网的的发展,越来越多的公司都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如 ...

  10. Ganlia采样、统计及RRD记录周期(频次、间隔)的配置和更改

    Ganglia & RRD Ganglia是伯克利开发的一个集群监控软件.可以监视和显示集群中的节点的各种状态信息,比如如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,同时可以 ...