Python編程:從入門到實踐——【作業】——第十一章(測試代碼)
阿新 • • 發佈:2018-04-24
stc 增加 收集 得到 width .com ast 接受 ted 人口 數量 : 修改前面的函數, 使其包含第三個必不可少的形參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( ) 通過了。
第十一章
11-1 城市和國家 : 編寫一個函數, 它接受兩個形參: 一個城市名和一個國家名。 這個函數返回一個格式為City, Country 的字符串, 如Santiago, Chile 。 將
這個函數存儲在一個名為city_functions.py的模塊中。
創建一個名為test_cities.py的程序, 對剛編寫的函數進行測試(別忘了,你需要導入模塊unittest 以及要測試的函數) 。 編寫一個名為test_city_country( ) 的
方法, 核實使用類似於‘ santiago‘ 和‘ chile‘ 這樣的值來調用前述函數時,得到的字符串是正確的。 運行test_cities. py , 確認測
試test_city_country( ) 通過了。
11-2
如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( ) 通過了。
11-1
模塊city_functions.py
def get_formatted_name(city,country): ‘‘‘函數返回一個格式為City, Country 的字符串‘‘‘ full_name = city + country return full_name.title()
test_cities.py
import unittest from city_functions import get_city_country class CityCountryTestCase(unittest.TestCase): ‘‘‘測試city_functions.py‘‘‘ def test_city_country(self): ‘‘‘類似於‘santiago‘和‘chile‘這樣的值來調用前述函數時‘‘‘ formatted_name =get_city_country(‘santiago ‘, ‘chile‘) self.assertEqual(formatted_name,‘Santiago Chile‘)#日了狗了,就這裏的大小寫出錯了 unittest.main()
結果:
11-2
模塊city_functions.py
def get_city_country(city,country,population): ‘‘‘函數返回一個格式為City, Country 的字符串‘‘‘ full_name=city + country + ‘-population ‘ + str(population) return full_name.title()
test_cities.py
import unittest from city_functions import get_city_country class CityCountryTestCase(unittest.TestCase): ‘‘‘測試city_functions.py‘‘‘ def test_city_country(self): ‘‘‘類似於‘santiago‘和‘chile‘這樣的值來調用前述函數時‘‘‘ formatted_name =get_city_country(‘santiago ‘, ‘chile‘, 5000000 ) self.assertEqual(formatted_name,‘Santiago Chile-Population 5000000‘) unittest.main() #有瑕疵的部分我這裏的Population大寫了,實際上是不大寫的,所以按照別人的應該是city_functions.py裏不用full_name來定義
結果:
11-3 雇員 : 編寫一個名為Employee 的類, 其方法__init__( ) 接受名、 姓和年薪, 並將它們都存儲在屬性中。 編寫一個名為give_raise( ) 的方法, 它默認將
年薪增加5000美元, 但也能夠接受其他的年薪增加量。
為Employee 編寫一個測試用例, 其中包含兩個測試方法: test_give_default_raise( ) 和test_give_custom_raise( ) 。 使用方法setUp( ) , 以免在
每個測試方法中都創建新的雇員實例。 運行這個測試用例, 確認兩個測試都通過了。
11-3
import unittest class Employee (): """收集雇傭者信息""" def __init__(self,first,last,salary): ‘‘‘存儲個人信息在屬性中‘‘‘ self.first = first self.last = last self.salary = salary def give_raise(self): ‘‘‘年薪增加量的方法‘‘‘ self.salary = 5000 return self.salary class TEmployee (unittest. TestCase) : ‘‘‘創建一個測試Employee實例‘‘‘ def setUp(self): self.first = ‘wang‘ self.last = ‘shi‘ self.salary = int(300) def test_give_default_raise(self): """測試員工薪水是否是默認值300""" self.assertEqual(self.Employee.salary,300) def test_give_custom_raise(self): """測試薪水增長值是否是5000""" self.assertEqual(self.Employee.give_raise(), 5000) unittest.main()
結果:
Python編程:從入門到實踐——【作業】——第十一章(測試代碼)